Từ 1 tới 3 trên tổng số 3 kết quả

Đề tài: Thắc mắc về method CList::GetNext

  1. #1
    Ngày gia nhập
    07 2007
    Nơi ở
    TP.HCM
    Bài viết
    199

    Mặc định Thắc mắc về method CList::GetNext

    Mình coi trong msdn thì thấy phương thức GetNext của CList (MFC Lib) nó như thế này:

    PHP Code:
    TYPEGetNext(POSITIONrPosition);
    const 
    TYPEGetNext(POSITIONrPosition) const; 
    Mình thắc măc không hiểu dạng hàm thứ 2 là như thế nào.
    Mình thử tạo 1 classA để tìm hiểu nó ra sao:

    PHP Code:
    //----------- trong A.h ------------

    class CA
    {
    public:
        
    int x;
        
    int y;

        
    CA(void);
        ~
    CA(void);

       
    intGetX();
       const 
    intGetX() const;
    };

    //--------------trong A.cpp -----------------

    #include "StdAfx.h"
    #include "A.h"

    CA::CA(void)
    {
        
    10;
        
    5;
    }

    CA::~CA(void)
    {
    }

    intCA::GetX()
    {
        return 
    x;
    }

    const 
    intCA::GetX() const
    {
        return 
    y;

    Ở hàm main mình viết thế này

    PHP Code:
    #include "stdafx.h"
    #include <stdio.h>
    #include "A.h"

    void _tmain( )
    {
        
    CAclassA = new CA();

        
    intclassA->GetX();         // lấy thằng x
        
    const intclassA->GetX(); // lấy thằng y

        
    printf("b = %d\n"b);
        
    printf("c = %d\n"c);

        
    delete classA;

        
    100;;
        
    printf("classA->x = %d\n"classA->x);

    Kết quả là nó xuất ra 10 hết, vậy là method [const int& CA::GetX() const] không bao giờ được gọi, vậy thì thằng CList viết ra để làm gì.
    Với lại sau khi delete classA mà vẫn có thể gán được b = 100 ?!?!
    Các bạn giải thích giùm mình nha.
    Attached Files Attached Files
    Đã được chỉnh sửa lần cuối bởi DKhanh : 22-08-2008 lúc 02:30 PM.

  2. #2
    Ngày gia nhập
    07 2007
    Bài viết
    41

    Cai hàm đó được gọi khi cái list là const, nếu không có hàm đó, khi list là const, cậu gọi GetNext sẽ bị báo lỗi.
    Đã được chỉnh sửa lần cuối bởi zxc : 22-08-2008 lúc 02:53 PM.

  3. #3
    Ngày gia nhập
    07 2007
    Nơi ở
    TP.HCM
    Bài viết
    199

    Trích dẫn Nguyên bản được gửi bởi zxc Xem bài viết
    Cai hàm đó được gọi khi cái list là const, nếu không có hàm đó, khi list là const, cậu gọi GetNext sẽ bị báo lỗi.
    Ồ ra là thế, cảm ơn bạn.

Các đề tài tương tự

  1. Socket Method Socket. Receive nhận dữ liệu như thế nào ?
    Gửi bởi dehin trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 3
    Bài viết cuối: 26-03-2013, 09:44 AM
  2. Kỹ thuật C++ Tạo Unit Test Case cho private method trong C# như thế nào?
    Gửi bởi kunkka trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 12-07-2012, 05:14 PM
  3. Algorithm làm thế nào để THread.sleep(1000) chạy sau method??
    Gửi bởi fukemy trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 09-07-2012, 09:15 PM
  4. Instance method và class method khác nhau như thế nào?
    Gửi bởi zenstorm trong diễn đàn Thắc mắc lập trình Objective-C
    Trả lời: 4
    Bài viết cuối: 24-02-2012, 09:36 AM
  5. Algorithm Lấy tên method trong class C# như thế nào?
    Gửi bởi mrfour.it trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 6
    Bài viết cuối: 02-12-2011, 12:17 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn