假设我有一个类构造器:
.h文件
class Memo {
public:
typedef vector<Memo> MemoList;
Memo (int id, Memo::MemoList &list);
MemoList pile;
};
.cc文件
Memo::Memo (int id, Memo::MemoList &list) {
pile = list;
}
pile
是“相同的东西”还是“等于”list
,或者我是否需要一个新变量作为对 的引用列表
?我希望能够修改 pile
并让它影响原始 list
。
最佳答案
简单回答你的问题:
do I need to have a new variable which acts as a reference to list? I would like to be able to modify pile and have it affect the original list.
:
您需要将列表存储为引用:
MemoList& pile;
// ^
并且必须在构造函数的初始化列表中初始化引用:
Memo::Memo (int id, Memo::MemoList &list) : pile(list) {
}
当您的Memo
必须是可复制的(现在不是)时,使用指针而不是引用。
请记住(也许一开始应该告诉您)以这种方式编程不是很安全 - 您必须确保您的列表生命周期比您的 Memo 对象长!!!
关于c++ - 在构造函数中给定引用,将类变量设置为引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13336597/