static object member in class + access control
C++语言: Codee#25736
01 /*
02 构造函数设为私有
03 +
04 类自身的静态数据成员放到类的内部
05 */
06
07 #include <iostream>
08 using namespace std;
09 class Egg
10 {
11 static Egg e; // it's so strange!
12 int i;
13 Egg(int ii)
14 : i(ii)
15 {}
16 Egg(const Egg&);
17 public:
18 static Egg* instance()
19 {
20 return &e;
21 }
22 int val() const
23 {
24 return i;
25 }
26 };
27
28 Egg Egg::e(47);
29
30 int main()
31 {
32 cout << Egg::instance()->val() << endl;
33 }
02 构造函数设为私有
03 +
04 类自身的静态数据成员放到类的内部
05 */
06
07 #include <iostream>
08 using namespace std;
09 class Egg
10 {
11 static Egg e; // it's so strange!
12 int i;
13 Egg(int ii)
14 : i(ii)
15 {}
16 Egg(const Egg&);
17 public:
18 static Egg* instance()
19 {
20 return &e;
21 }
22 int val() const
23 {
24 return i;
25 }
26 };
27
28 Egg Egg::e(47);
29
30 int main()
31 {
32 cout << Egg::instance()->val() << endl;
33 }
C++语言: Codee#25737
01 /*
02 申明私有拷贝构造函数
03 防止对象按值传递方式传递
04 */
05 class NoCC
06 {
07 int ;
08 NoCC(const NoCC&);
09 public:
10 NoCC(int ii = 0)
11 : i(ii)
12 {}
13 };
14
15 void f(NoCC);
16
17 int main()
18 {
19 NoCC n;
20 //! f(n);
21 //! NoCC n2=n;
22 //! NoCC n3(n);
23 return 0;
24 }
02 申明私有拷贝构造函数
03 防止对象按值传递方式传递
04 */
05 class NoCC
06 {
07 int ;
08 NoCC(const NoCC&);
09 public:
10 NoCC(int ii = 0)
11 : i(ii)
12 {}
13 };
14
15 void f(NoCC);
16
17 int main()
18 {
19 NoCC n;
20 //! f(n);
21 //! NoCC n2=n;
22 //! NoCC n3(n);
23 return 0;
24 }