#define _cri_secure_no_warnings
#define _crt_secure_no_warnings
#includeusing namespace std;
class person
int m_a;
int m_b;
int m_c;
//有參構造初始化資料
/* person(int a, int b,int c)
*///利用初始化列表來初始化資料
//建構函式後面+:屬性(引數),屬性(引數)...
person(int a, int b, int c) :m_a(a), m_b(b), m_c(c) //初始化列表
{}};
void test01()
int main()
c++提供了關鍵字explicit,禁止通過建構函式進行的隱式轉換。宣告為explicit的建構函式不能在隱式轉換中使用。
注意:**例項:
如下面**所示,如果我把explicit mystring(int a)這行中的explicit去掉。那麼mystring str3=10;這行會發生隱式型別轉換為 mystring str3=mystring(10),而加上explicit則不會發生此轉換。
#define _cri_secure_no_warnings
#define _crt_secure_no_warnings
#include#includeusing namespace std;
class mystring
explicit mystring(int a) };
void test01()
int main()
c 初始化列表
與其他函式不同,建構函式除了有名字,引數列表和函式體之外,還可以有初始化列表,初始化列表以冒號開頭,後跟一系列以逗號分隔的初始化字段。struct foo 初始化列表 建構函式的兩個執行階段 從概念上來講,建構函式的執行可以分成兩個階段,初始化階段和計算階段,初始化階段先於計算階段 初始化階段 所有...
C 初始化列表
與其他函式不同,建構函式除了有名字,引數列表和函式體之外,還可以有初始化列表,初始化列表以冒號開頭,後跟一系列以逗號分隔的初始化字段。在c 中,struct和class的唯一區別是預設的克訪問性不同,而這裡我們不考慮訪問性的問題,所以下面的 都以struct來演示。struct foo 初始化列表 ...
C 初始化列表
與其他函式不同,建構函式除了有名字,引數列表和函式體之外,還可以有初始化列表,初始化列表以冒號開頭,後跟一系列以逗號分隔的初始化字段。struct foo 初始化列表 建構函式的執行可以分成兩個階段,初始化階段和計算階段,初始化階段先於計算階段。所有類型別 class type 的成員都會在初始化階...