们进来解答一下小弟我的有关问题,多谢

大虾们进来解答一下我的问题,谢谢!
//   编译器为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)