【发布时间】:2014-10-01 13:20:41
【问题描述】:
如果我有一个用户定义的类型,例如:
typedef std::string GenderType;
GenderType gender;
是否可以将gender 设置为等于std::string 变量?
std::string temp;
temp = gender;
我是否需要以某种方式从GenderType 中提取std::string?使用stringstream 这样做更安全吗?
【问题讨论】:
-
typedef引入了同义词,同一类型的另一个名称。换句话说,std::string和GenderType的意思完全一样。 -
是的,它导致了崩溃,并且我的调试器无法工作 b/c 我的 pdb 文件超过 1GB 哈哈
-
GenderType只是std::string的别名有什么问题? -
我不会认为
typedef是用户定义的类型。class、stuct和union声明用户定义的类型。typedef只是现有类型的别名。 -
@squareskittles 如果您的应用程序崩溃,这不是因为为
std::string引入了类型别名,而是几乎可以肯定是因为我们在您的上述帖子中看不到的其他内容。从软件工程的角度来看:std::string对于GenderType来说是一个糟糕的选择。enum可能更适合。
标签: c++ stringstream stdstring user-defined-types