U543470fa 2021-05-18 11:45 采纳率: 66.7%
浏览 127
已采纳

C++中怎么给类赋char数组初值?

 

#include<iostream>

using namespace std;

class Person
{
public:
	Person(char* name, bool sex)
	{
		strcpy(m_name, name);
		m_sex = sex;
		cout << "Person类构造函数被调用!" << endl;
	}
	~Person()
	{
		cout << "Person类析构函数被调用!" << endl;
	}
private:
	char m_name[20];
	bool m_sex;
};
int main()
{
	Person person("张三", true);
	return 0;
}

 error C2664: “Person::Person(const Person &)”: 无法将参数 1 从“const char [5]”转换为“char *”

 message : 从字符串文本转换将丢失 const 限定符(请参阅 /Zc:strictStrings)

  • 写回答

4条回答 默认 最新

  • CSDN专家-link 2021-05-18 11:51
    关注

    你把参数类型改成const char*就可以了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    U543470fa 2021-05-18 12:19

    感谢,为什么要用const呢,刚学C++不太懂,是因为传入的是常量吗

    回复
    CSDN专家-link 回复 U543470fa 2021-05-18 12:22

    是啊,否则你的函数里就可以修改指针的内容了,但常量是不允许修改的

    回复
查看更多回答(3条)
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部