想验证我对其工作原理的理解。
拥有一个带有一个公共实例变量的C ++类:
char* character_encoding;
,其唯一的构造函数定义为:
TF_StringList(const char* encoding = "cp_1252");
当我在C ++ / CLI或C ++中使用这个类时,我要做的第一件事就是声明一个指向这个类的对象的指针:
const TF_StringList * categories;
然后我实例化它:
categories = new TF_StringList();
这给了我一个指向TF_StringList类型对象的指针,该对象的变量character_encoding设置为“cp_1252”; 那么,这一切逻辑是否有效?
吉姆
答案 0 :(得分:1)
我想说这取决于构造函数实际做什么。如果我们假设它这样做:
TF_StringList(const char* encoding)
: character_encoding(encoding)
{
}
然后你的逻辑成立。但它可以做任何事情,你没有在构造函数参数和实例的成员变量之间显示连接。
答案 1 :(得分:1)
我看到的一个问题是你的构造函数接受一个const char *,但你将它存储在char *中。除非你抛弃constness,否则这会导致编译器抱怨。 (或者,有没有理由不让你的字段成为常量字符*?我看不到你需要编辑名字的字符......)