Nó phải là một cái gì đó cụ thể trong mã của tôi, mà tôi không thể đăng. Nhưng có lẽ ai đó có thể gợi ý nguyên nhân có thể xảy ra.Phương pháp C++ chỉ hiển thị khi đối tượng truyền tới lớp cơ sở?
Về cơ bản tôi có:
class CParent
{
public:
void doIt(int x);
};
class CChild : public CParent
{
public:
void doIt(int x,int y,int z);
};
CChild *pChild = ...
pChild->doIt(123); //FAILS compiler, no method found
CParent *pParent = pChild;
pParent->doIt(123); //works fine
Làm thế nào trên trái đất?
CHỈNH SỬA: mọi người đang nói về bóng/ẩn. Nhưng hai phiên bản của doIt có số lượng tham số khác nhau. Chắc chắn rằng không thể nhầm lẫn trình biên dịch, quá tải trong lớp con mà không thể nhầm lẫn với phiên bản lớp cha? Có thể không?
Các lỗi biên dịch tôi nhận được là: lỗi C2660: 'CChild :: DoIT': chức năng không mất 1 lập luận
Wow. Điều này là không nhiều để đi về ... –
Tôi ngạc nhiên khi bạn nhìn thấy bất kỳ phương pháp nào cả. –
về cơ bản tôi có ... về không có gì? –