自定义构造函数会覆盖默认构造函数,就是说定义了带参的构造函数后,编译器是不会创建默认构造函数的,这个时候你使用 A a;这样试图创建一个A类的对象,并调用无参的构造函数初始化是不正确的,因为类中没有无参的构造函数,这个时候编译器找不到匹配的构造函数,所以会报错哦……no appropriate default constructor available!
这个时候你有两种解决方法,
一:将你定义的构造函数设置成带默认形参的构造函数!
二:定义一个无参的构造函数!
追问默认构造函数没定义呢,是空的,a(){},有什么作用,也不用生成吗