使用无参构造函数创建对象时,不应该在对象名后面加上括号。
例如:
class CText
{
public:
CText(){}
CText(int a, int b, int c)
{
m_nA = a;
m_nB = b;
m_nC = c;
}
show()
{
cout<<"fffd"<<endl;
}
private:
int m_nA;
int m_nB;
int m_nC;
};
int main()
{
CText ObjCText();
ObjCText.show();
}
编译上述main()中的如下语句:CText ObjCText();
则编译系统(程序)提示警告:
warning C4930: “CText ObjCText(void)”: 未调用原型函数(是有意用变量定义的吗?)。
因为编译程序把该语句中的ObjCText看做是一个函数,而不是类CText的对象了。
也故而
编译上述main()中的如下语句:ObjCText.show();//假设函数show()是从(包括间接基类)基类里继承来的可访问的函数,也是会如此错误。