c++ - C++ 实例化问题

  显示原文与译文双语对照的内容

要验证我对如何工作的理解。
具有一个带有一个 public 实例变量的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";因此,所有逻辑有效?

吉姆

时间:

我看到的一个问题是,你的构造函数采用了一个常量 char*,但是你将它存储在 char* 中。 这将导致编译器抱怨,除非你丢弃了 constness 。 ( 或者,是否有任何理由不使你的字段成为常量 char*? 你不需要编辑名字的字符。

我认为这取决于构造器实际上是什么,而这是什么。 如果我们假定它是这样做的:


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

然后,你的逻辑可以存在。但它可以做任何事情,你不会在构造函数和实例变量之间显示连接。

...