C++:用成员初始化列表对数据成员初始化
生活随笔
收集整理的這篇文章主要介紹了
C++:用成员初始化列表对数据成员初始化
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1、在聲明類時,對數(shù)據(jù)成員的初始化工作一般在構(gòu)造函數(shù)中用賦值語句進(jìn)行。?
例如:
2、另一種初始化數(shù)據(jù)成員的方法---用成員初始化列表來實現(xiàn)對數(shù)據(jù)成員的初始化
帶有成員初始化列表的構(gòu)造函數(shù)的一般形式如下:
類名::構(gòu)造函數(shù)名([參數(shù)表]):[(成員初始化列表)]
{
構(gòu)造函數(shù)體?
}
成員初始化列表的一般形式為:
數(shù)據(jù)成員名1(初始值1),數(shù)據(jù)成員名2(初始值2),...........
例如:
3、對于用const修飾的數(shù)據(jù)成員,或是引用類型的數(shù)據(jù)成員,是不允許在構(gòu)造函數(shù)中用賦值
語句直接賦值的,而是采用成員初始化列表對其進(jìn)行初始化。
例:用成員初始化列表對引用類型的數(shù)據(jù)成員和const修飾的數(shù)據(jù)成員初始化。
#include<iostream> using namespace std;class A{public:A(int x1):x(x1),rx(x),pi(3.14) //用成員初始化列表對引用類型的數(shù)據(jù)成員rx和const修飾的數(shù)據(jù)成員pi初始化 {}void print(){cout<<"x = "<<x<<" "<<"rx = "<<rx<<" "<<"pi = "<<pi<<endl; } private:int x;int ℞ //rx是整型變量的引用 const double pi; //pi是用const修飾的常量 };int main(){A a(10);a.print();return 0; }例: ?用成員初始化列表對數(shù)據(jù)成員進(jìn)行初始化
#include<iostream>using namespace std;class D{public:D(int i):mem2(i),mem1(mem2+1) //用成員初始化列表對數(shù)據(jù)成員進(jìn)行初始化 {cout<<"mem1:"<<mem1<<endl;cout<<"mem2:"<<mem2<<endl; } private:int mem1;int mem2; }; int main(){D d(15);return 0;}/*注意:規(guī)定數(shù)據(jù)成員是按照它們在類中聲明的順序進(jìn)行初始化的,數(shù)據(jù)成員mem1應(yīng)在mem2之前被初始化。因此,在mem2尚未初始化時,mem1使用“mem2+1”的來初始化,所得結(jié)果是隨機(jī)的,而不是16。 */?
程序猿神奇的手,每時每刻,這雙手都在改變著世界的交互方式! 本文轉(zhuǎn)自當(dāng)天真遇到現(xiàn)實博客園博客,原文鏈接:http://www.cnblogs.com/XYQ-208910/p/4912093.html,如需轉(zhuǎn)載請自行聯(lián)系原作者總結(jié)
以上是生活随笔為你收集整理的C++:用成员初始化列表对数据成员初始化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多播委托浅析
- 下一篇: C++ STL 常用遍历算法