1

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

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

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

谢谢

4

1 回答 1

5

要初始化const成员(以及引用成员),您需要使用构造函数初始化列表

这就是您在 C++11 中的操作方式(字符串按值传递然后移动,因此当在构造函数的输入中给出右值时不会执行复制):

#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;
};
于 2013-05-20T09:28:17.867 回答