变成思想第二卷的一段单态例子 有点不明白
代码如下 不明白的地方在代码中添加注释了
// 2013030901.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
using namespace std;
class Singleton
{
private:
static Singleton s;
int i;
Singleton(int x):i(x){}
Singleton& operator=(Singleton&);
Singleton(const Singleton&);
public:
static Singleton& instance()
{
return s;
}
int getValue()
{
return i;
}
void setValue(int x)
{
i = x;
}
};
Singleton Singleton::s(47); // 这是什么意思?初始化一个Singleton吗 s不是私有的吗?Singleton Singleton是什么意思?
int main()
{
Singleton& s = Singleton::instance(); // 为什么用Singleton& s "&"是什么意思?
cout<<s.getValue()<<endl;
Singleton& s2 = Singleton::instance();
s2.setValue(1);
cout<<s.getValue()<<endl;
return 0;
}
主要在Singleton Singleton::s(47)这一句和Singleton& s = Singleton::instance(); 这一句不是很明白 求大家解释一下 谢谢了
[解决办法]
静态变量要全局声明
[解决办法]
Singleton Singleton::s(47);
第一个Singleton表示类,第二个Singleton及其::表示类Singleton中的静态成员s。
和起来就是构造了static Singleton s;这个s。
&表示引用。
在看思想之前,基本的语法要掌握了。
[解决办法]
第一个是变量s的类型,第二个是类的名称
[解决办法]
建议看看第一卷11章:引用和拷贝构造函数。讲的很详细
[解决办法]
《Windows核心编程》