们进来解答一下小弟我的有关问题,多谢
大虾们进来解答一下我的问题,谢谢!
// 编译器为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;
}
------解决方案--------------------
我的上面没有你说的这个问题呀,
ki没有定义,
------解决方案--------------------
我估计是你的编译器的设置有问题,或者你改成用MINGW32或者DEVC++来试试看看
------解决方案--------------------
构造函数是初始化成员变量的 你写的什么啊
这里你的构造函数重载 初始有两种方式
A dadi;
A dadi(10);
------解决方案--------------------
构造函数是初始化成员变量的 你写的什么啊
这里你的构造函数重载 初始有两种方式
A dadi;
A dadi(10);
///////////////////////////////////////////
胡说,构造函数不仅仅是用来初始化成员变量的,它还可以用来做其它很多的事情,反正你想要在类对象真正产生之前所做的任何的事情,都可以在构造函数内部来做.
------解决方案--------------------
There is an ambiguity in the grammar involving expression-statements and declarations: An expressionstatement with a function-style explicit type conversion (5.2.3) as its leftmost subexpression can be indistinguishable from a declaration where the first declarator starts with a (. In those cases the statement is a
declaration.
c++03.(6.8)
// 编译器为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;
}
------解决方案--------------------
我的上面没有你说的这个问题呀,
ki没有定义,
------解决方案--------------------
我估计是你的编译器的设置有问题,或者你改成用MINGW32或者DEVC++来试试看看
------解决方案--------------------
构造函数是初始化成员变量的 你写的什么啊
这里你的构造函数重载 初始有两种方式
A dadi;
A dadi(10);
------解决方案--------------------
构造函数是初始化成员变量的 你写的什么啊
这里你的构造函数重载 初始有两种方式
A dadi;
A dadi(10);
///////////////////////////////////////////
胡说,构造函数不仅仅是用来初始化成员变量的,它还可以用来做其它很多的事情,反正你想要在类对象真正产生之前所做的任何的事情,都可以在构造函数内部来做.
------解决方案--------------------
There is an ambiguity in the grammar involving expression-statements and declarations: An expressionstatement with a function-style explicit type conversion (5.2.3) as its leftmost subexpression can be indistinguishable from a declaration where the first declarator starts with a (. In those cases the statement is a
declaration.
c++03.(6.8)