我有一个叫做播放器的载体和一个叫做播放器的类。我试图做的是写:正在初始化对象
players.push_back(Player(name, Weapon(bullets)));
所以我想能够创建循环播放器。但是,我看到一个错误信息说“呼叫播放::播放器没有匹配的功能......”
然后我改变了对:
Weapon w(bullets);
Player p(name, w);
players.push_back(p);
这里是我的球员的定义:
class Player {
public:
Player(string &name, Weapon &weapon);
private
string name;
Weapon weapon;
}
我只是想了解这些定义之间有什么区别。这是将对象传递给对象构造函数的正确方法。
注意:这些不是我实际的类定义。我只是试图在C++中学习一些关于面向对象编程的知识。我的意思是我知道的武器可以在播放器初始化:)
的名字也应该是const(它被复制,并在构造函数中没有被修改) – 2010-04-03 12:34:27
@大卫你是绝对正确的。 – 2010-04-03 12:35:51
@Andreas:顺便说一句,上面这两个代码有没有区别?我在谈论表现。他们两个正在创建一个局部变量并传递正确? – pocoa 2010-04-03 12:43:50