EasyC++,默认构造函数

开发 后端
C++当中有一个很奇怪的设定,当一个类我们没有提供任何构造函数时,C++会默认赋予它一个默认构造函数。但当我们一旦实现了构造函数之后,C++则不会进行如此操作。

[[439804]]

大家好,我是梁唐。

默认构造函数

上一篇文章当中介绍的是显式构造函数,也就是说我们需要传入值来对类的成员变量进行初始化。

但也有一些情况,我们可能并不需要传入值进行初始化,或者有一些其他的逻辑。针对这种情况,C++提供了默认构造函数的功能。所谓默认构造函数,也就是在没有提供显式的初始值时,用来创建对象的构造函数。

默认构造函数非常简单,还是以之前的Stock类为例:

  1. Stock::Stock() { 
  2.  
  3. ... 
  4.  

如果默认构造函数里没有任何逻辑,我们也可以把它写在类声明里:

  1. class Stock { 
  2.  
  3. ... 
  4.  
  5. Stock() {} 
  6.  
  7. }; 
  8.  
  9. #endif 

C++当中有一个很奇怪的设定,当一个类我们没有提供任何构造函数时,C++会默认赋予它一个默认构造函数。但当我们一旦实现了构造函数之后,C++则不会进行如此操作。意味着对于定义了构造函数的类来说,想要使用默认构造函数,必须由程序员手动定义。

有了默认构造函数之后,我们才可以直接声明类的实例:

  1. Stock stock1; 

如果Stock类没有默认构造函数,那么上述的语句会报错。

实现默认构造函数,除了上述那样手动创建一个没有任何参数的构造函数之外,还可以将已有的构造函数的所有参数都设置默认值。

  1. Stock(const string &co = "Error"int n = 0, double pr = 0.0); 

 

由于只能有一个默认构造函数,所以不要同时采用这两种方式。

 

责任编辑:武晓燕 来源: Coder梁
相关推荐

2021-12-09 10:56:50

函数C++原型

2021-12-11 19:02:03

函数C++对象

2021-12-29 20:31:40

C++多态指针

2021-11-10 10:48:36

C++函数指针

2021-12-12 18:13:54

C++This指针

2021-11-30 11:04:36

C++函数语言

2021-11-26 00:03:20

C++编译常量

2021-11-09 10:38:16

C++Const指针

2021-11-27 11:50:09

C++静态持续

2021-12-30 14:58:58

C++函数动态

2021-10-26 00:19:51

C++结构体存储

2021-12-08 10:43:09

C++实现

2021-10-27 16:27:20

C++指针操控

2021-10-26 15:36:17

C++枚举值类型

2021-12-05 18:20:42

C++空间特性

2021-12-15 10:25:57

C++运算符重载

2022-01-04 16:35:42

C++Protected关键字

2021-10-31 20:24:24

C++for循环

2021-10-21 18:52:00

C++数组存储

2021-11-26 10:56:28

C++存储持续性
点赞
收藏

51CTO技术栈公众号