虚拟函数出错,请高手指点

来源:百度知道 编辑:UC知道 时间:2024/06/09 04:02:29
class cBase
{
protected:
int width;
public:
virtual void GetData(int * ptr)
{
*ptr=width;
}
};
class CDerived:public CBase
{
public:
int GetData(int *x)
{
int j=width;
width=*x;
return j;
}
};

你的函数写的不明确,不知道你要做什么。

但是有一点是有问题的,你可能就是问的这个。
虚拟函数继承需要参数类型一致。
返回值也需要一样:
要么
void GetData(int * ptr)
void GetData(int *x)

要么
int GetData(int * ptr)
int GetData(int *x)

你这样搞的不覆盖,也不是重载,根本不可能通过编译,把类型换成LS所说的