时间 :2022年9月2日 15点07分
笔记 : chenxu
教程 :韦东山C++语言教程
===================================================================================================
框架主要是从下面两个方向入手:
1. 韦东山C++教程的全部的视频
2. 资料里面附录的 C++快速入门思维导图
大概是25节课
之后是文件中的学习框图 :
其中只学习三部分 :
1. C++基础知识
2. 面向对象编程
3. 高级编程
这三个总章,又分为很多个细节
下面是 C++基础知识的部分 :
![在这里插入图片描述](https://img-blog.csdnimg.cn/ad93500c8aba4ea8855c58d5a08fc235.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/353112d108884f38a571468c169eb452.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/fc56f180870c44cabc2f35a45ff1a8fa.png)
。。。
整体的框图还是比较大的,所以可以慢慢的看这个框图相关的东西。
=====================================================================================================
1.C++基础知识
1.1 class是对struct的扩展
1.2访问控制
1.3this指针
1.4类和对象
1.5程序结构
类定义 (.h)
类实现 (.c)
命名空间:
.h/.cpp文件中:
namespace a
//声明或定义函数;
int fun();
void fun2()…
调用者源文件中:
- 直接使用:
a::fun, a::fun2 - using声明:
using a::fun; // 以后调用fun即表示a::fun - using编译:
using namespace a ; // 以后调用fun, fun2即可
1.6重载
函数名相同,参数不同(类型、数量、顺序不同)
1.7指针和引用
引用就是别名,引用定时 时必须初始化: int a; int &b=a; //b即为a的别名
1.8构造函数/析构函数
1.8.1 : 构造函数: 无返回值,函数名与类名相同, 可设置默认参数: fun(int a=1, int b=2)
1.8.2: 有默认构造函数,一旦实现了自己的构造函数就必须自己实现默认构造函数
1.8.3: 无参对象定义: Person p; 不能写为 Person p(); //后者是一个函数
1.8.4 : 类中含有对象成员时,先调用对象成员的默认构造函数,再调用类的构造函数
要调用对象成员的其他构造函数,可以这样写: Student(int sID) : id(sID) 构造函数的"“前加”:“,加上成员的初始化代码
对象成员:按定义时的顺序构造,与上述初始化代码顺序无关
析构函数被调用的顺序:相反
1.8.5: 构造顺序:按运行中定义对象的顺序调用构造函数,静态对象只调用一次构造函数; 全局对象在main函数执行前被构造
1.8.6: 拷贝构造函数: Person(const Person & s)
(1.) 用于:Person s(“lisi”); Person p(s);
(2.) 若不提供此函数,则调用默认拷贝构造函数, 对各成员变量进行值复制
1.8.7: 析造函数: 无返回值,无参数,函数形式为”~类名()" 对象销毁前瞬间,由系统自动调用析构函数
1.9new和delete
Person *p = new Person(); delete p;
Person *pers = new Person[10]; delete[] pers;
1.10静态成员
静态数据成员: Point operator+(cont Point& p1, cont Point& p2) /* p1,p2相加 /
静态成员函数: Point operator+(cont Point& p1) / this 当前对象和p1相加 */
1.11友员
在类中声明非成员函数时加上friend,它即可访问类的私有数据成员
一个类的成员函数也可以是另一个类的友元
class A
private :
int a;
public:
friend void fun1(); // fun1不是A的成员函数也可以访问a
frined void B::fun2(); // B类的fun2也可以访问a
1.12运算符重载
前增量操作
类外函数:Point& operator++(cont Point& p1) /* p1增加后, return p1 /
成员函数:Point& operator++(void) / this对象增加后, return *this */
后增量操作
类外函数:Point operator++(cont Point& p1, int b) Point n = p1; p1增加; return n;
成员函数:Point operator++(intb) Point n = *this; *this增加; return n;
返回结果
值返回:返回函数内部定义的局部变量;
该变量在函数执行时被创建,执行完毕时被销毁;
只返回值;效率低
引用返回:效率高
选择原则:不影响运算结果效率优先
1.13const成员函数
成员函数声明后面,加上const
void printInfo(void) const;
表示此函数没有修改操作
const对象只能调用const成员函数
2.面向对象编程
2.1封装
(1.)抽象出数据成员、成员函数
(2.)访问控制
2.1类本身
Private:界不可见,不能直接访问
Protected:界不可见,不能直接访问;子类可以访问
Public:外界可以直接访问
2.2继承访问控制
1.无论哪种继承方式,在派生类内部使用父类时并无差别
2. 不同的继承方式,会影响这两方面:外部代码对派生类的使用、派生类的子类
2.2 继承