const数据成员

时间:2013-05-20 09:24:45

标签: c++ constructor const

所以我有一个具有const字符串数据成员的类。

从用户收到的字符串本身。

如何编写可以使用它的构造函数以及如何从用户获取字符串并将其放入类中?

感谢

1 个答案:

答案 0 :(得分:5)

要初始化const成员(以及参考成员),您需要使用constructor initialization lists

这是你在C ++ 11中的方法(字符串按值传递然后移动,这样当在构造函数的输入中给出rvalue时不会执行复制):

#include <string>

struct X
{
    X(std::string s_) : s(std::move(s_)) { }
//                    ^^^^^^^^^^^^^^^^^^
    std::string const s;
};

在C ++ 03中你会这样做:

#include <string>

struct X
{
    X(std::string const& s_) : s(s_) { }
//                           ^^^^^^^
    std::string const s;
};