C ++实例化问题

时间:2010-05-03 14:48:14

标签: c++

想验证我对其工作原理的理解。
拥有一个带有一个公共实例变量的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”; 那么,这一切逻辑是否有效?

吉姆

2 个答案:

答案 0 :(得分:1)

我想说这取决于构造函数实际做什么。如果我们假设它这样做:

TF_StringList(const char* encoding)
: character_encoding(encoding)
{
}

然后你的逻辑成立。但它可以做任何事情,你没有在构造函数参数和实例的成员变量之间显示连接。

答案 1 :(得分:1)

我看到的一个问题是你的构造函数接受一个const char *,但你将它存储在char *中。除非你抛弃constness,否则这会导致编译器抱怨。 (或者,有没有理由不让你的字段成为常量字符*?我看不到你需要编辑名字的字符......)