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