笔者刚系统的重学了c++的语法,看到构造函数和初始化表这块,发现这块语法有点复杂且很杂,怕以后忘记,于是写下此篇,以后回忆之用。
c++构造函数
3、构造函数(constructor)
Class/struct 类名 {
//构造函数
类名(形参表) {函数体}
};
1)构造函数名字和类名相同,没有返回类型
2)构造函数在对象被创建时自动被调用
3)构造函数主要负责对象的初始化,即初始化成员变量
4)构造函数在每个对象的生命周期,一定会被自动调用,但只会被调用一次
Class A {
A(void) {.....} //构造函数
};
Int main (void) {
A a; //自动调用构造函数
}
构造函数重载(重载其本质就是编译器的改变函数的名字)
构造函数可以通过参数表的不同形成重载,在创建对象时通过构造实参的类型选择匹配,表示不同对象的创建方式。
2、缺省构造函数(默认构造函数/无参构造函数)
1)如果一个类没有定义任何构造函数,编译器会提供一个缺省的无参构造函数
如果定义了构造函数,无论是否有参数,编译器都不会再提供缺省的无参构造函数
2)对于类中的基本类型成员变量,不做初始化
3)对于类 类型的成员变量,调用相应的无参构造函数来初始化
3、类型转换构造函数(单参构造函数)
Class 目标类型 {
目标类型(源类型) {......}
};
可以接收单个源类型对象实参的构造函数,支持从源类型到目标类型的隐式转换
explicit关键字:用于修饰类型转换的构造函数,强制的要求这种转换必须显示的进行
原文地址:https://www.cnblogs.com/yxzz/p/9597213.html
时间: 2024-11-08 04:53:33