关于c ++参考的问题

kam*_*lot 0 c++ reference vector object variable-assignment

假设我有这个载体

vector<Object> m;
Run Code Online (Sandbox Code Playgroud)

然后我有以下任务:

vector<Object> o = m;
vector<Object> k = &m;
Run Code Online (Sandbox Code Playgroud)

向量o将是向量m的复制,而向量k将指向与向量m完全相同的对象....我是对的吗?

换句话说,如果我去,o.push_back(something)这将修改向量o而不是向量m,而如果我去k.push_back(something),这将确实修改向量m.

我错了还是对的?

Xeo*_*Xeo 6

适合o,错误的k.

vector<Object> k = &m;
//                 ^^ -- you're taking the address of m here
Run Code Online (Sandbox Code Playgroud)

要进行参考,请使用

vector<Object>& k = m;
//            ^ -- this makes a reference
Run Code Online (Sandbox Code Playgroud)