样例
我们在一个类中写了一个构造函数,写完之后创建一个对象的时候会发现报错!!!
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);
}
这样就可以继续运行了,喜欢的可以点点赞支持一下哦~