首页 > 学院 > 开发设计 > 正文

17 - 05 - 14 C++初窥

2019-11-14 11:54:30
字体:
来源:转载
供稿:网友

C++作用域运算符 :

“ ::”主要有2种应用方式。

其一,类与类的成员之间

声明一个类A,类A里声明了一个成员函数void f( ),但没有在类的声明里给出f的定义,

那么在类外定义f时,就要写成void A::f( ),表示这个f( )函数是类A的成员函数。

 其二,作用域。

简单分为:全局作用域,局部作用域,语句作用域

作用域优先级:范围越小优先级越高

作用域运算符:"::"

如果希望在局部变量的作用域内使用同名的全局变量,可以在该变量前加上"::","::"称为作用域运算符.

### 构造函数

构造函数是成员函数的一种,名字 与 类 的名字相同,可以有参数,但是不能有返回值(void也不行)。

其作用是对 对象进行初始化,比如给成员对象赋初始值。

若定义类 时没有写构造函数,则编译器自动生成一个默认的无参的构造函数。

(默认构造函数没有参数,不做任何操作)。

对象生成时,构造函数自动被调用,对象一旦生成,就再也不能在其上执行构造函数。

一个类可以有多个构造函数。

# 为什么需要构造函数?

其执行了必要的初始化操作,不必专门再写初始化函数,亦不必担心忘记书写初始化函数。

什么是构造函数?通俗的讲,在类中,函数名 和 类名 相同的函数称为构造函数。

它的作用是在建立一个对象时,作某些初始化的工作(例如对数据赋予初值),

(仅仅负责创建对象而不做任何赋值操作..疑问?)在一个类中可以有多个构造函数。

如果一个都没有,编译器将为该类产生一个默认的构造函数。

构造函数惟一的语法限制是 它不能指定 返回类型,甚至void 也不行。

不带参数的构造函数 一般形式为

         类名 对象名( )   {  函数体  }

带参数的构造函数:不带参数的构造函数,只能以固定不变的值初始化对象。

带参数构造函数的初始化要灵活的多,通过传递给 构造函数 的参数,可以赋予对象 不同的初始值。

一般形式为:构造函数名(形参表);

创建对象使用时:类名 对象名(实参表);

构造函数参数的初始值:构造函数的参数可以有缺省值。

当定义对象时,如果不给出参数,就自动把相应的缺省参数值赋给对象。一般形式为:

构造函数名(参数=缺省值,参数=缺省值,……);析构函数:

当一个类的对象离开作用域时,析构函数将被调用(系统自动调用)。

析构函数的名字和类名一样,不过要在前面加上 ~ 。对一个类来说,只能允许一个析构函数,析构函数不能有参数,

并且也没有返回值。析构函数的作用是完成一个清理工作,如释放从堆中分配的内存。

一个类中可以有多个构造函数,但析构函数只能有一个。对象被析构的顺序,与其建立时的顺序相反,

即后构造的对象先析构。

 

析构函数(destructor) 与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),

系统自动执行析构函数。析构函数往往用来做“清理善后”工作(例如在建立对象时用new开辟了一片内存空间,

应在退出前在析构函数中用delete释放)  


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表