我试图将一个char *投射到我自己制作的一个类中,并且似乎无法让它工作而没有错误告诉我,我根本无法施放{{ 1}}输入char*
(我的班级名称)。字符指针来自指针数组Player
,即Austin或Kyle。有了这个,我认为char *names[i], i = any index, names[i] = one of the names
是i
,但我可能是错的。
我想要实现的目标是在向量中迭代char*
和Player
每个push_back
的向量,同时将char* i
转换为键入播放器。我当然希望这个具体到足够,如果被问到我会澄清。
i
答案 0 :(得分:0)
听起来您想为字符串数组中的每个名称创建一个Player
对象。
如果是这种情况,您真的不想将char *
投射到Player
,您希望为每个{Player
构建char *
1}}在您的数组中。类似的东西:
for (int i = 0; i < nameCount; i++)
{
Player *p = new Player(names[i]);
// Do something with p
v.push_back(p); // ?? or something
}
这假设您的Player
类有一个如下所示的构造函数:
Player::Player(const char *name)
和v
是std::vector<Player>
如果您的Player类具有此构造函数,则该语言实际上允许将char *隐式转换为Player(这可能是您在尝试转换char时所考虑的内容*进入球员):
for (int i = 0; i < nameCount; i++)
{
v.push_back(names[i]); // adds a new Player, using the name stored in names[i]
}
编辑:您的Player类还需要一个默认构造函数:
class Player {
public:
Player(const char *name);
Player() {}; // should probably initialize m_name and m_funds in here (set to 0 or something) just to be pedantic
private:
int m_funds;
char *m_name;
};
将对象放入容器(例如std :: vector。
)时需要这样做答案 1 :(得分:0)
您的Player构造函数收到一个const char *,而您的m_name成员是char *。将const char *分配给char *将不起作用。
制作构造函数Player :: Player(char * name)。