这是C++课程第一周结束后的一些总结感悟.
类
C++里面,类是非常重要了,类又分两种,一种是基于对象的,只是单一的一个类,另外一种是面向对象的,是类相互之间的关系.首先学习了基于对象的.
而这个基于对象的,又有两种,一种是没有指针元素的,一种是有指针元素的.
第一种的数据是普通的数值,没有以指针形式呈现. 第二种是以指针形式的,比如字符串.
对于类的声明和一些实现,是放在头文件.h中,在main的文件.cpp中,完成一些具体的利用类的操作.
在头文件中:
- 首先需要防卫式声明,ifndef,这样可以避免重复定义,提高效率
- 接下来有 前置声明
- 类的声明
- 类定义,可以现在声明中写好声明,在到这里来定义
类的声明中,包含,类的 head和body
在head主要是呈现了类的名字,有时候之前还有表示模板类的表示
在body里面,主要包含两大类:public和private.
public 主要是一些函数的声明或者定义,可以让外界所知道,调用的.
private 主要是一些数据的声明,以及一些friend 的声明. 这些外界是无法知道的
模板类
可以理解为占位符, 以便适应更多的数据类型,减少代码的重复
截图中的T就可以理解为那个占位符,今后,在具体的环境中,可以把T替换为具体的数据类型
inline 内联函数
可以理解为宏,在编译阶段,把函数整体复制到调用的地方,使得减少了函数调用时候保存现场,之后恢复现场等得时间,提高了效率,同时也增加了程序大小,使得在某些资源有限的地方要慎用.
constructor ctor 构造函数
是调用类创建函数时自动调用的函数,一般用于初始化对象:
- 函数名要与类名相同
- 可以拥有参数,参数也可以设置默认值
- 不需要返回值
- 尽量使用初值列
- 构造函数可以有很多个.但不能同时存在有默认值和初始化没有给值的两个函数.
- 构造函数放在private区
初值列
一个数据有两个阶段,第一阶段是初始化,第二阶段是赋值,
而这个初值列就是初始化阶段,如果放弃初值列,到赋值的时候,也可以,
但效率要差一点.
常量成员函数
成员函数是在private区里面的,常量,就是说不会改变数据的内容,在小括号后面,大括号前面添加const
参数传递
- 值传递
- 引用传递
引用传递
可以看做是一个替身,使用& 符号. 四个字节
在最根本还是指针. (还要再理解理解).
可以把两个值传递引用给函数,函数直接交换形参的值,传进来的两个的值就交换了.
friend 友元
在private区里的 数据,是类外面无法看到的,但是有时候又要对其进行处理,为了方便,就可以使用友元,
在private 里面声明下那个函数,前面添加friend,
就可以像public里面的成员函数一样使用private里的数据
同一个类class 的不同的对象,互为友元.
返回值和返回引用
- 如果是函数里的局部变量,不能使用其返回引用
操作符重载 operator overloading
被调用的,默认有个this参数
有时候需要作为friend 友元来调用私有数据
总结:
对C++ 理解,尤其是,一些规范,有加深,但是对于引用,和操作符的重载还理解得不够好,还需继续看文档,加深理解
第一次写这个,写得不好,还望读者您多多包含.