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 }

 

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 }
posted @ 2012-03-06 15:32  strorehouse  阅读(146)  评论(0编辑  收藏  举报