请问使用基类的公共函数出现这个是怎么回事
我基类有xianshi()成员函数,派生类也有xianshi()这个函数
我想使用基类xianshi()函数 在main()里要怎么用?
我用sz1.DONGWU::xianshi(); //sz1是派生类对象,DONGWU是基类名
但是我Bulid的时候出现:
main.obj : error LNK2001: unresolved external symbol "public: void __thiscall DONGWU::xianshi(void)const " (?xianshi@DONGWU@@QBEXXZ)
Debug/作业534页继承.exe : fatal error LNK1120: 1 unresolved externals
请问是怎么回事`有什么规定?还是为什么?
[解决办法]
1。同名函数,derived类覆盖了base类
2。使用virtual,显式使用基类
[解决办法]
貌似基类的cpp文件你没有加到工程里。。。。
[解决办法]
类继承的层次,先进行名字解析,然后重载解析
所以就不能看到基类的同名成员函数
[解决办法]
没人告诉过你千万不要, 覆盖基类的非虚函数吗.这是编程大忌. 赶紧改.
[解决办法]
呵呵,这个错误一般是你没有给出函数的函数体吧,定义一下试试,或者直接在声明的时候,加上{}
[解决办法]
没问题呀,是不是你的编译器有问题?
struct DONGWU
{
void xianshi()
{
}
};
struct DONGWU2 : DONGWU
{
void xianshi()
{
}
};
int main( void )
{
DONGWU2 sz1;
sz1.DONGWU::xianshi();
}
[解决办法]
如果你还是要强用. 你可先把obj转为基类.再调用.