class

1、类

在C++语言中是一种数据类型,用于描述某一个类的事物,包括属性与方法(函数)。

 

例子:

 

2、对象

具体化某一个事物,成为一个具体的个体,创建对象后才会分配内存空间。

创建方式

3、访问属性方法

(1)<对象名>.<属性或方法>;

 

(2)<对象指针名>  ->  <属性或方法>;

 

4、访问权限

 

共有的,私有的,受保护的——在访问权限中体现不出来他们的差别,在继承中才体现出不同。

例子:判断一个点是否在圆上,圆内,圆外

过程解析:

 

点的头文件,定义点的参数

对点类进行封装

对圆类参数进行定义

 

对圆类进行封装并对点和圆的的位置关系进行判断

 

主函数

 

5、构造函数

在构造对象时自动调用此函数,往往用来初始化对象内的成员变量。

(1)定义:函数名与类名一致且没有返回值

 

(2)默认构造函数

当类中没有构造函数时,编译器会自动生成一个构造函数。

(3)函数重载

针对不同的初始化方式,可以构造重载函数。

(4)初始化列表

在初始化时,也可以使用初始化列表的方式来实现构造函数,一般用在继承中。

(1)拷贝构造函数

当一个对象需要通过另一个对象初始化,则需要使用拷贝构造函数。

什么时候会调用拷贝构造函数?

①主动创建对象时,用一个对象去初始化另外一个对象的时候。

②一个对象以值传递的形式传入函数体。

③一个对象以值的形式从函数返回。

C++标准允许一种(编译器)实现省略创建一个只是为了初始化另一个同类型对象的临时对象。指定这个参数(-fno-elide-constructors)将关闭这种优化。——优化方式是建立一个对象引用绑定到返回值的优化,可以省略两次调用拷贝构造函数。

深拷贝与浅拷贝

(1)浅拷贝

默认的拷贝构造函数为浅拷贝。

针对指针对象,只拷贝指针存储的地址。

(2)深拷贝

针对指针对象,拷贝指针指向的空间。

Explicit

含义:

explicit关键字只能用来修饰类的构造函数,且最好只修饰只有一个参数的构造函数。

被修饰的构造函数不能发生相应的隐式类型转换,只能以显示的方式进行类型转换

何时触发隐式拷贝构造函数?

例子:1未添加explicit

例子2:添加explicit

 

6、析构函数

在销毁对象时自动调用此函数,往往用来释放对象内申请的资源。

定义:

与类名相同,在前面加位取反符~。且不能有任何参数与返回值

特点:

①没有参数没有返回值,但有this指针

②析构函数不能用const修饰

③一个类有且只有一个析构函数,所以肯定不能重载。

7、Static

Static表示静态关键字,可以用于修饰成员变量与成员函数。

静态成员可以通过双冒号来使用。即:<类名>::<静态成员名>

(1)修饰成员变量名

语法:

①在class中进行声明——static<类型修饰符><变量名>

②在class外进行初始化——static <类型修饰符><类名>::<变量名>=<初始化值>

特点:

①static修饰的成员变量属于类不属于具体的对象

②static成员变量的内存在程序开始运行时分配,程序运行结束时释放内存。

③static成员变量对于所有的对象是共享的,并在对象创建之前就已经产生了。

④静态成员使用前必须初始化,否则会在linker(链接)步骤时出错。

⑤在成员函数中可以正常访问静态成员变量。

例子:

 

(2)修饰成员函数

 

 

 

何时使用static

一切不需要实例化(创建对象)就可以有确定行为方式的函数都应该设计成静态的。

 

8、this指针

用于保护对象的地址,每一个非静态函数中都有一个隐藏参数this。

常见使用方式:

在非静态函数中,需要返回对象本身。

在非静态函数中,传入形参名与对象内成员变量相同时区分两个变量。

9、const关键字

(1)const成员变量

Const成员变量只能在初始化列表中初始化

 

(2)const成员函数

①防止成员函数修改非静态成员变量的值。

②const成员函数可以修改静态成员变量。

③const成员函数也可以与同名非const成员函数构成函数重载。——创建const对象时调用的为const修饰的成员函数

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值