首页 > 代码库 > C++ 成员变量的初始化与构造函数
C++ 成员变量的初始化与构造函数
<pre name="code" class="cpp"># include<iostream> using namespace std; class demo { public: demo(){x=0;cout<<"demo的默认构造函数!"<<x<<endl;} demo(int i){x=i;cout<<"demo的带一个参数的构造函数!"<<x<<endl;} ~demo(){cout<<"demo的默认析构函数!"<<x<<endl;} int get(){return x;} void set(int i){x=i;} private: int x; }; class rectangel { public: rectangel(){x=1000;cout<<"rectangel的默认构造函数!"<<x<<endl;} rectangel(int i,int j,int k):x(i),width(j),length(k) //由于有两个demo类的对象,因此调用了两次带一个参数的构造函数 //rectangel(100,200,300);会把100、200、300的一一传递给i、j、k.但是其构造顺序是按着私有成员变量的顺序输出的,先输出length之后是width,并不是按着初始化列表。 //构造函数的初始化顺序是按着成员列表的顺序进行的。 { cout<<"rectangel的带三个参数的构造函数!"<<"长方形b的面积为:"<<length.get()*width.get()<<endl; cout<<length.get()<<endl; cout<<width.get()<<endl; } ~rectangel(){cout<<"rectangel的默认的析构函数!"<<x<<endl;} //析构函数的顺序正好和构造函数相反,哪个先构造就最后析构,后构造的最先析构。 private: int x; demo length; demo width; }; int main() { rectangel(100,200,300); return 0; }
运行结果:
# include<iostream> using namespace std; class A { public: A(int a,int b):num(a),total(b){}; //A(int a,int b){num=a;total=a;} //用下面的语句,系统会报错。 private: const int num; int &total; //引用和const成员函数不能被赋值. }; int main() { A a(3,4); return 0; }
C++ 成员变量的初始化与构造函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。