是成员函数的一种。
名字与类目相同,可以有参数,不能有返回值(void也不行)作用是对对象进行初始化,如给成员变量赋初值(但并不是执行构造函数时给对象分配内存空间。而是对象进行实例化时已经分配了内存空间。)如果定义类时,没有写构造函数,则编译器生成一个无参构造函数。对象生成时构造函数自动被调用。对象一旦生成就再也不能在其上执行构造函数。一个类可以有多个构造函数,构造函数直接参数不同或参数个数不同,构造函数直接形成重载关系。
class Complex{
private:
double real,imag;
public:
void Set(double r,double i);
};//编译器自动生成默认构造函数
Complex cl;//默认构造函数被调用
Complex * pc=new Complex;//默认构造函数被调用
构造函数在对象数组中的使用
1.
class CSample{
int x;
public:
CSample(){
cout<<"Constructor 1 Called"<
2.
class Test{
public:
Test(int n){};//(1)
Test(int n,int m ){};//(2)
Test(){}//(3)
};
int main()
{
Test array1[3]={1,Test(1,2)};//三个Test对象分别用构造函数(1)(2)(3)初始化
Test array2[3]={Test(2,3),Test(1,2),1};//三个Test对象分别用构造函数(2)(2)(1)初始化
Test* pArray[3]={new Test(4),new Test(3,4)};//注意,该方式只生成了2个Test对象。pArray[0],pArray[1]分别用构造函数(1)(2)初始化。pArray[2]未初始化,为空
}



