class Csample
{private:
int a=2.5; (A)
float f ; (B)
public:
CSample( ); (C)
~ CSample( ); (D)
};
错误的地方是A,但是我想问的是,为什么构造函数和析构函数是这样的,这个的意思是定义了一个空的构造函数和析构函数吗?但是大括号去哪了?为什么后面还加了分号?
int a=2.5;
这个错误是因为类型不匹配,和构造函数无关。int a,整形。2.5浮点型,浮点型转整形需要强制类型转换。得写int a = (int)2.5;
CSample( );和~ CSample( );不能算错,因为C++允许你在类定义外面写函数具体实现,而在类定义里只写函数申明。但是光这么写是不行的。
如果你这么写,下面必然还要写
Csample::Csample( )
{
...
}
和
Csample::~Csample( )
{
...
}
这样才能编译
int a=2.5错了,c++比c语言的类型检查更为严格,需要把浮点型强制转换为整型才行,你的构造函数和析构函数只是在类中声明,实现还需要在类外实现
class CTest
{
public:
CTest();
~CTest();
public:
int nData;
};
CTest::CTest()
{
nData = 10;
}
CTest::~CTest()
{
}
如果你写的是头文件的话,是不能给变量赋值的,只能在构造函数中赋值