【发布时间】:2016-04-04 15:22:46
【问题描述】:
我正在尝试创建一个 Person 类,我决定在其中保持名称和性别不变。这是类定义:
class Person
{
const char *name;
int age;
const char *gen;
protected:
Person(const char *, const int ,const char *); // I want to use this class as a Base class
public:
~Person();
}
现在我的问题是如何初始化常量数据成员。我知道我必须使用 初始化列表 来完成这项任务,但即便如此,我如何使用 new 为 char 指针分配内存?我也无法在构造函数体中初始化这些指针。请帮我找到解决方案。
【问题讨论】:
-
指针不是常量,但指向的字符是常量。不仅如此,constructor 是
protected那么你打算如何构造这个对象呢?举例说明如何使用这个类。 -
我想用这个类作为学生类@norisknofun 的基类
-
@norisknofun 你能告诉我你所说的关于 const 字符的两件事的区别吗?我从来没有真正理解其中的区别。
-
@SouravKanta 为什么不使用 (
const)std::string,这样您就不必考虑分配问题了?
标签: c++ class pointers constants