c++虚基类的问题

来源:百度知道 编辑:UC知道 时间:2024/06/19 20:19:53
请大侠帮我看下是哪里错了 是书上的习题,叫我分析结果的 我运行了出错
#include <iostream>
using namespace std;
class A
{
public:
int n;
};
class B:public virtual A{};
class C:public virtual A{};
class D:public B,public C
{
int getn() {return B::n;}
};

int main()
{
D d;
d.B::n=1;
d.C::n=2;
cout<<d.B::n<<","<<d.C::n<<endl;
return 0;
}
这里是出错信息
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/虚基类.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.

虚基类.exe - 1 error(s), 0 warning(s)

楼主的程序本身没有错误,只是项目设置可能存在问题,建议在新建项目时选择“Win32控制台项目”,再将程序贴上.cpp文件中去。也可以使用命令编译,比如:假设存储程序的文件为test.cpp,那么
cl.exe /GX test.cpp
就可以在当前目录下生成test.exe。编译命令cl.exe在VC++的安装目录中。

这样改project-》setting-》c/c++下面的preprocessor difinitions有一项是
—CONSOLE改成—WINDOWS然后在下面的project options里有一个D "_CONSOLE"也改为WINDOWS

我直接运行通过,可能是环境设置问题

我也试过,可以编译成功!