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

子类声明一个对象时出现LINK2001异常 求教

2013-01-18 
子类声明一个对象时出现LINK2001错误求教建了一个控制台应用程序 头文件 父类子类如下:intFunctio1(void)

子类声明一个对象时出现LINK2001错误 求教
建了一个控制台应用程序 

头文件 父类子类如下:
int  Functio1(void);
class Box{
public: virtual int Function2();

};

class BoxSon : public Box
{
public: int Function2();
};
cpp文件 

int BoxSon::Function2()
{
int c = 2;
return c;
}

 BoxSon *BoxSon1;
int _tmain(int argc, _TCHAR* argv[])
{
cout<<*BoxSon1->Function2()<<endl;
getchar();
return 0;
}
当我子类声明对象 BoxSon BoxSon1时 会出现link2001错误

没找到解决办法 我就如此声明BoxSon *BoxSon1 链接错误没有 但是运行到cout<<*BoxSon1->Function2()<<endl;
时 会提示内存访问错误。

问题如下 

1 为什么 BoxSon BoxSon1 会出新链接错误 而BoxSon *BoxSon1没有?两者有什么区别?

2 cout<<*BoxSon1->Function2()<<endl; 为什么会出现内存读取错误?

ps: 我用的是vs2005中文版+windows7 32bit

[解决办法]
 BoxSon *BoxSon1;
需要实例化一个对象哦!
[解决办法]
BoxSon *BoxSon1;需要实例化,比如BoxSon *BoxSon1=new BoxSon();
[解决办法]
另外父类中的virtual int Function2();可以写成virtual int Function2()=0;作为纯虚函数。

热点排行