c++类编译通过了,连接错误,就大神求解,求真相~~

2025-02-27 23:13:29
推荐回答(4个)
回答1:

如何改正,前面的朋友已经给出了答案。这里,我来说说,为什么这两句代码有问题。
basic theTwo();
当编译器遇到这一句,将解释为一个函数的声明,函数名为theTwo,返回值的类型为basic,无参数。
所以,这就能更好理解下一句“theTwo().outPut().outptr();”,其中theTwo()理解为函数调用。所以,这个程序能编译通过,但在链接时会出错。因为,没有语法的问题,所以能通过编译,但在链接时,找不到一个basic theTwo()的函数,所以出错。
为了证实以上的解释,可以在代码的最后加上这样一个函数的实现,程序能通过链接,并正确运行。
basic theTwo(){
basic ob;
return ob;
}
所有这些,概括的说,就是调用类的无参构造函数构造对象时,对象名后不能写()。

回答2:

把主函数改成:

int main()

{

 basic theTwo;

 theTwo.outPut().output();

 return 0;

}

 

就可以了。其它的不用动。 

 

在VC6.0下编译,运行通过。

 

你可以重新建立一下控制台程序试试。

回答3:

int main()
{

basic theTwo;
theTwo.outPut ().output ();
return 0;
}

回答4:

少默认构造函数
就是没有参数的构造函数
----------------
如果修正, 请给采纳