类的总结

来源:互联网 发布:rarzip解压软件下载 编辑:程序博客网 时间:2024/06/08 10:30

用了两天的时间复习了一下类。趁热打铁

在学习类之前先要大概了解一下(声明)和(定义)这个两个的含义。(以c++primer为准)

定义:用于为变量分配存储空间,还可以为变量制定初始值。在一个程序中,变量有且仅有一个定义。

声明:用于向程序表明变量的类型和姓名。

大致可以理解为:通过使用extern关键字声明变量名和对象名,对象类型和对象类型前的关键字extern只声明不定义,其他的声明和定义是同步的。

类:C++中用来定义自己的抽象数据类型

类主要包含两部分

1.成员变量

2.成员函数

访问属性有三类:public private protect

public属性的成员在类外可以调用

private属性的成员只可以在类内部使用

protect属性的成员和private差不多,但是protect属性的成员可以在子类中被调用

类成员必须在类中进行声明,成员函数的定义可以再类中(内联函数inline),也可以在类外。


(一)成员变量

1.)类的成员变量可以是内置类型也可以是自定义类型,当成员变量被const限定时初始化只可以在类的构造函数中的初始化列表中进行初始化(const static例外);

2.)形参表和函数体处于类作用域中,可以使用类自有的成员和定义。返回类型不一定在类的作用域中,不可以使用类定义的类型(必须用完全限定名)。


(二)成员函数

1.)this指针:每个成员函数(static函数除外)都有一个额外的,隐含的形参this。在调用成员函数时形参this初始化为调用函数的对象的地址。

2.)构造函数:构造函数是特殊的成员函数没有返回值函数名就是类名,如果自己不定义构造函数则类会自动生成一个默认构造函数初始化类的成员变量(只初始化有隐式初始化的变量)。构造函数也可以像普通函数一样重载。类定义对象时就会调用构造函数(如果重载了根据传进的实参类型调用),构造函数的初始化列表成员初始化顺序和定义成员的次序一样。

3.)常量成员函数:成员函数形参后面加上限制符const这个成员函数就被声明为常量成员函数,定义时也必须跟着const。const改变了this的类型,this变成指向const对象的指针,所以不可以修改this值,也就是不可以修改调用该函数的对象的值。const对象只可以调用const类型的函数。

4.)inlien函数:内联函数避免函数调用的开销。适用于优化小的经常被调用的函数。内联函数,就是在调用点上内联的展开

5.)static成员函数,无隐含this指针所以不可以调用非static成员函数,如需调用可以传this指针或者传递对象引用或者指针

6.)友元函数,友元声明将已命名的类或者非成员函数引入到外围作用域中

7.)类的隐式转换,如果类的构造函数有一个形参(不考虑默认形参)那么这个类可以隐式转化,抑制隐式转化的方法是在构造函数前加上explicit。


原创粉丝点击