什么叫没有默认构造函数的类类型成员??能不能举例说明??
1个回答
展开全部
默认构造函数(default constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有的形参提供默认实参的构造函数定义。如果定义某个类的变量时没有提供初始化式就会使用默认构造函数。
如果用户定义的类中没有显式的定义任何构造函数,编译器就会自动为该类型生成默认构造函数,称为合成的构造函数(synthesized default constructor)。
如果类包含内置或复合类型的成员,则该类就不应该依赖于合成的默认构造函数,它应该定义自己的构造函数来初始化这些成员。
多数情况下,编译器为类生成一个公有的默认构造函数,只有下面两种情况例外:
1.一个类显式地声明了任何构造函数,编译器不生成公有的默认构造函数。这这种情况下,如果程序需要一个默认构造函数,需要由类的设计者提供。
举例说明:比如说:下面的A就没有默认构造函数。
class A
{
A(int);
};
2.一个类声明了一个非公有的默认构造函数,编译器不会生成公有的默认构造函数。
详见参考资料
如果用户定义的类中没有显式的定义任何构造函数,编译器就会自动为该类型生成默认构造函数,称为合成的构造函数(synthesized default constructor)。
如果类包含内置或复合类型的成员,则该类就不应该依赖于合成的默认构造函数,它应该定义自己的构造函数来初始化这些成员。
多数情况下,编译器为类生成一个公有的默认构造函数,只有下面两种情况例外:
1.一个类显式地声明了任何构造函数,编译器不生成公有的默认构造函数。这这种情况下,如果程序需要一个默认构造函数,需要由类的设计者提供。
举例说明:比如说:下面的A就没有默认构造函数。
class A
{
A(int);
};
2.一个类声明了一个非公有的默认构造函数,编译器不会生成公有的默认构造函数。
详见参考资料
参考资料: http://baike.baidu.com/view/2785579.htm
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询