以下哪approches的最好定义一个全局变量:C++ Singelton类Vs的命名空间与公开静态变量
- 公共静态类变量的所有私有变量的类
- 使用单个对象:(单例类)
- 名称空间 - 我应该只是使用一个名称空间来代替。
我不确定这个问题是否合理。只是试图找到最佳做法。
下面的代码在语法上不正确的,但我认为它应该传达的理念:
----------------------------------------------------------------
class Reader {
Reader();
Library* lib;
static Reader* reader;
public:
Reader* Instance() {
if (!reader) { reader = new Reader() }
return reader;
}
void setLibrary (Library* ptr) { lib = ptr }
Library* getLibrary { return lib }
}
Reader* Reader::reader = NULL;
int main() {
...
Library* lib = new Library("test");
Reader::Instance()->setLibrary(lib);
Reader::Instance()->getLibrary()->addCell("AND2X1");
}
-------------- OR -------------
class Reader {
Reader();
public:
static Library* lib;
}
Library* Reader::lib = NULL;
int main() {
...
Reader::lib = new Library("test");
Reader::lib->addCell("AND2X1");
}
---------------- OR -----------------
namespace Reader {
Library* lib = NULL;
}
int main() {
...
Reader::lib = new Library("test");
Reader::lib->addCell("AND2X1");
}
---------------------------------------------------------------
我试图用一个Tcl_createCommand TCL前端在我的C++程序创建新的命令。我不能将任何新的参数传递给函数实现 ,结果我需要全局变量来访问函数中的一些数据。 我发现的所有解决方案似乎都是使用全局变量。
我需要上述的另一个实例是使用bison生成解析器时。 我需要定义全局变量才能在使用野牛语法时执行操作。
noooooooooooooooooooooooooooooo。 。 。 – 2012-03-28 19:59:08
你在问关于_worst_练习的错误问题。 CodeChords说,使用'clientData'。 – Useless 2012-03-28 20:04:46
[C++ FQA](http://www.cs.technion.ac.il/users/yechiel/c++-faq/global-vars.html)[27.15]什么是使用全局变量的良好编码标准?这是声明一个全局变量的理想方法:'// int xyz; ←使这个全球理想的东西是领先的//' ,不要使用全局变量 – 2017-11-02 11:15:50