一、问题描述
vs2019中,以下代码,有时会报错:没有合适的默认构造函数可用
class Person
{
public:
Person(string name, int age, int height)
{
m_name = name;
m_age = age;
m_height = height;
}
string m_name;
int m_age;
int m_height;
};
二、问题解决
- 错误原因:在Person类中定义了其他构造函数,那么,编译器不会为你创建默认构造函数;然而,在编译器调用Person的默认构造函数时,就会找不到。
- 解决方法:加入默认构造函数
class Person
{
public:
Person() {}; //不加这行会报错,缺少默认构造函数
Person(string name, int age, int height)
{
m_name = name;
m_age = age;
m_height = height;
}
string m_name;
int m_age;
int m_height;
};