C++ 中的构造函数-c中的构造函数.md
title: C++ 中的构造函数date: 2021-04-24 09:56:35.289
updated: 2021-04-24 10:00:27.561
url: /?p=112
categories: C++
tags: C++
构造函数的本意是在创建对象的时候初始化对象,编译器会根据传递的实参来匹配不同的(重载的)构造函数。
-
默认构造函数。就是编译器自动生成的构造函数。以 Complex 类为例,它的原型为:
1 | Complex(); //没有参数 |
-
普通构造函数。就是用户自定义的构造函数。以 Complex 类为例,它的原型为:
1 | Complex(double real, double imag); //两个参数 |
-
拷贝构造函数。在以拷贝的方式初始化对象时调用。以 Complex 类为例,它的原型为:
1 | Complex(const Complex &c); |
-
转换构造函数。将其它类型转换为当前类类型时调用。以 Complex 为例,它的原型为:
1 | Complex(double real); |
不管哪一种构造函数,都能够用来初始化对象,这是构造函数的本意。假设 Complex 类定义了以上所有的构造函数,那么下面创建对象的方式都是正确的:
1 | Complex c1(); //调用Complex() |
这些代码都体现了构造函数的本意——在创建对象时初始化对象。
除了在创建对象时初始化对象,其他情况下也会调用构造函数,例如,以拷贝的的方式初始化对象时会调用拷贝构造函数,将其它类型转换为当前类类型时会调用转换构造函数。这些在其他情况下调用的构造函数,就成了特殊的构造函数了。特殊的构造函数并不一定能体现出构造函数的本意。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 LT的编程笔记!