解决没有与参数列表匹配的构造函数
·
样例
我们在一个类中写了一个构造函数,写完之后创建一个对象的时候会发现报错!!!
class Son {
public:
Son() {
age = 0;
name[0] = '\0';
}
Son(int age, char* name) {
this->age = age;
strcpy_s(this->name, 64, name);
}
~Son(){
}
void print() {
cout << name << ", " << age << endl;
}
friend ostream& operator<<(ostream& out, const Son& other);
private:
int age;
char name[64];
};
问题描述:
根据上面的代码,我们在创建一个类的对象的时候,本应该没问题,但是我们却看到了下面的报错↓
原因分析:
这里出现这样的原因是因为VS2019更加为严格了,所以才会导致这样的错误。
解决方案:
现在要解决这个错误很简单,只要在构造函数里面加上一个const就可以解决了,如下,或者我们改用string来定义字符串,也可以解决这个问题
Son(int age, const char* name) {
this->age = age;
strcpy_s(this->name, 64, name);
}

这样就可以继续运行了,喜欢的可以点点赞支持一下哦~
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐




所有评论(0)