首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请教使用基类的公共函数出现这个是咋回事

2012-03-14 
请问使用基类的公共函数出现这个是怎么回事我基类有xianshi()成员函数,派生类也有xianshi()这个函数我想使

请问使用基类的公共函数出现这个是怎么回事
我基类有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转为基类.再调用.

热点排行