C++ explicit关键字

 1 #include <iostream>
 2 using namespace std;
 3 class Test1
 4 {
 5 public:
 6     int m;
 7     Test1(int n) { num = n; } //普通构造函数
 8     void Show()
 9     {
10         cout << "private num = " << num <<endl;
11     }
12 private:
13     int count;
14     int num;
15     int n;
16 };
17 class Test2
18 {
19 public:
20     explicit Test2(int n) { num = n; } //explicit(显式)构造函数
21 private:
22     int num;
23 };
24 int main()
25 {
26     Test1 t1 = 12; //隐式调用其构造函数, 成功
27     t1.Show();
28     
29     //Test2 t2 = 12; //编译错误,不能隐式调用其构造函数
30     Test2 t3(12); //显式调用成功
31     return 0;
32 }

 

posted @ 2014-03-04 20:27  秋月的私语  阅读(299)  评论(0编辑  收藏  举报