Char to char* C++
Char to char* C++
我有一个错误与我的构造函数在我的类。
在我的。cpp文件中有:
Player::Player()
{
m_name="Jane";
m_amt=100;
}
在我的。h文件中我有:
// Default constructor, does nothing.
Player();
// Creates a Player. Player name and amount.
Player(const char &name, int amt);
我得到错误:
error: invalid conversion from ‘const char*’ to ‘char’ [-fpermissive]
m_name="Jane";
所以我尝试将其转换为*char
,但仍然不起作用。有人能帮忙吗?
你可以选择一个指针:
Player(const char* name, int amt) { ... }
,你可以用std::string
来存储名字,用char*
来构造这个字符串:
private:
std::string m_name;
public:
Player(const char* name, int amt) : m_name(name) { }
或者只是在所有地方使用std::string
并通过引用传递以避免创建冗余副本:
private:
std::string m_name;
public:
Player(const std::string& name, int amt) : m_name(name) { }
注意最后一个版本是相当灵活的,也可以传递const char*
给它,例如:
#include <iostream>
#include <string>
class Player {
private:
std::string m_name;
public:
Player(const std::string& name) : m_name(name){}
void printName() { std::cout << m_name; }
};
int main() {
Player p("Liho");
p.printName();
}
显示完整的类/代码。以下编译对我来说很好。
cpp文件…
#include"player.h"
Player::Player()
{
m_name="Jane";
m_amt=100;
}
. h文件…
class Player {
public:
// Default constructor, does nothing.
Player();
// Creates a Player. Player name and amount.
Player(const char *name, int amt);
private:
char* m_name;
int m_amt;
};