我有一个类std::string&
作为该类的成员。我想实例化该引用,但是我没有任何东西可以实例化它,直到稍后。
如何实例化std::string&
成员?
#include <string>
class Temp {
public :
Temp(): _line("") {}
private:
std::string& _line;
}
答案 0 :(得分:2)
在类中使用引用作为成员意味着您使用从开头到结尾的相同指向数据。
如果你需要在课程的生命周期中初始化它,那是不可能的。一旦你提出参考,你必须自己处理副本和assignement。你确定这真的是你想要的吗?
如果您想要指向稍后将提供给您的另一个std::string
,或者您将存储所需值的std::string
,则需要指针。
但是,如果你没有在构造函数中传递任何内容,请避免唯一允许你初始化ref的东西:
Temp(): _line(*(new std::string)) {} // NEVER EVER !