不是经验丰富的C++程序员,我尽量保持程序可读性。 可能的话,我将函数和类放在Main.cpp之外的其他cpp和头文件中。关于代码可读性
我开始做同样与所有的#define指令用于声明标签和基本参数。它们位于DEF_PARAM.h头文件中,可以工作。
我想为地图做同样的事情,但这会导致我的问题。
std::map <std::string,int> Mnemo_list; //Mapping of Mnemonics to number of parameters.
Mnemo_list["P"]=4;
Mnemo_list["PX"]=1;
Mnemo_list["PY"]=1;
Mnemo_list["PZ"]=1;
Mnemo_list["SO"]=1;
Mnemo_list["S"]=4;
Mnemo_list["SX"]=2;
Mnemo_list["SY"]=2;
Mnemo_list["SZ"]=2;
Mnemo_list["CpX"]=3;
Mnemo_list["CpY"]=3;
Mnemo_list["CpZ"]=3;
Mnemo_list["CX"]=1;
Mnemo_list["CY"]=1;
Mnemo_list["CZ"]=1;
因为我有时用字符串从文本文件阅读,我经常需要只用枚举工作的开关控制,于是我开始跟在后面的开关使用整数的映射字符串。因为地图可能很长,所以我更喜欢它们将头文件或头文件放在头文件或cpp文件中。
我试图首先把完整块(映射定义和分配)在头文件,或仅在首部中的地图DEF,其余以CPP文件。其结果是从编译如下奇怪的错误:
"error: expected constructor, destructor, or type conversion before '=' token"
我认为没有人喜欢通过这样一个在main.cpp中的开始了一系列的长列表进行浏览。一旦infor处于代码中,您再也不想看到它,因此我会将这一系列代码放入Main.cpp之外的头文件或/和代码文件中。
这种方法可以让我想和全局变量的工作是什么不是这样的印象。我只是想避免这个问题,就像论坛之前向我提出的那样。
这是很好的做法,还是有保持源代码可读的其他方式?
由于提前,
斯特凡
几十亿人。它们中的许多是相互排斥的或不适用于给定的项目。几乎所有的其他都是主观的。 – delnan
你能提供一些例子吗?多余的宏使用往往会使代码无法读取。此外,这个问题可能更适合[codereview.se]。 – hammar
在编辑之后,我会推荐C++ 0x,即使在全局范围内,您也可以使用正确的值初始化映射。 –