c++成员变量的初始化和构造函数实例源码

c++成员变量的初始化和构造函数实例源码,在函数头初始化:

#include <iostream>
using namespace std;

class demo
{
public:
demo(){cout<<”demo的默认构造函数!\n”;}
demo(int i){x=i;cout<<”demo的带一个参数的构造函数!”<<x<<endl;}
~demo(){cout<<”demo的默认析构函数!”<<endl;}
int get(){return x;}
void set(int i){x=i;}
private:

int x;

};

class rectangular{
public:
rectangular(){x=1000;cout<<”rectangle的默认构造函数!”<<x<<endl;}//析构函数是哪个先构造就后析构
rectangular(int i,int j,int k):x(i),width(j),length(k){cout<<”rectangular的带三个参数的构造函数,长方形的面积:”<<length.get()*width.get()<<endl;}//c++两个参数的构造方法
// rectangular(){weidth=85;height=62;}这是错的因为常量是不能被赋值的
~rectangular(){cout<<”rectangular的默认析函数!”<<x<<endl;}
int area(){return length.get()*width.get();};
private:
int x;
demo length;//包容了demo对象,注意构造函数的初始化顺序,是按成员列表的顺序
demo width;//包容了demo对象,注意构造函数的初始化顺序

};

int main(){
rectangular a(100,200,300);
return 0;

}

 

c++在函数头初始化实例:

#include <iostream>
using namespace std;

class A{
public:
A(int a,int b):num(a),total(b)
{
cout<<”默认构造函数!\n”;
/*以下赋值是错的,而应该怎函数头初始化才对
num=a;
total=b;*/

}
private :
const int num;//c++常量不能被赋值
int &total;//c++引用不能被赋值
};

int main(){
A a(8,9);
return 0;

} 本文链接地址: c++成员变量的初始化和构造函数实例源码