一般问题:通常定义类,命名空间.
我的情况:
我只在我的类实现中使用这个映射:
std::map<const std::pair<string, string>,const string*>
Run Code Online (Sandbox Code Playgroud)
我想知道把它放在课堂上(在公共场合:)或封闭的头文件中的好地方在哪里?我没有名称空间
GMa*_*ckG 12
如果它只在你的班级,我通常把它放在私人部分的顶部:
class Foo
{
public:
void some_functions(void);
private:
typedef std::pair<std::string, std::string> StringPair;
typedef std::map<StringPair, std::string> StringPairMap;
StringPairMap _stringMap;
}
Run Code Online (Sandbox Code Playgroud)
为了澄清,与大多数事情一样,您希望将这些内容指定为尽可能本地.变量应该这样做:int i在你到达循环之前,你没有为你的for循环定义等等.
同样,如果你的类在内部使用这些typedef,那就按我上面所说的做.如果只有类中的特定函数需要typedef,请将typedef放在该函数的开头.
如果您需要将此typedef公开给该类的客户端,我希望将typedef放在该public部分的顶部.