麻烦大虾位回答一下我的问题,谢谢了!
// 编译器为VC6.0
//为什么会这样?麻烦各位大虾解答一下,谢谢!
#include "stdafx.h "
#include "iostream "
using namespace std;
class A
{
public:
A(){cout < < "构造对象\n ";}
A(int i){cout < <i < <endl;}
};
int main(int argc, char* argv[])
{
int m = 90;
A dadi;
A(m); //错误
A(90); //正确
A(ki); //正确,且调用了构造函数A()而不是A(int i),但ki并未定义
dadi = A(m); //正确
dadi = A(ki); //错误,ki未定义
return 0;
}
[解决办法]
A(int i){cout < <i < <endl;}
=>
explicit A(int i){cout < <i < <endl;}
[解决办法]
A(m); //错误
A(90); //正确
A(ki); //正确,且调用了构造函数A()而不是A(int i),但ki并未定义
你没开玩笑吧?A()这是类,不是对象!不能这么写。
[解决办法]
学习一下