c++基础语法之构造函数和初始化表

笔者刚系统的重学了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关键字:用于修饰类型转换的构造函数,强制的要求这种转换必须显示的进行

 

 

posted @ 2018-09-06 11:12  芸学之子  阅读(139)  评论(0编辑  收藏  举报