c++已经有默认构造函数还会生成合成默认构造函数吗

如题所述

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

默认构造函数没定义呢,是空的,a(){},有什么作用,也不用生成吗

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-05-18
不会的,没有构造函数时才会,构建的追问

默认构造函数没定义呢,是空的,a(){},有什么作用,也不用生成吗

追答

不生成的,反正有的话不生成的

追问

空的默认构造函数,有什么作用

本回答被提问者采纳
相似回答