文章目录
- 1.继承中子类和父类之间的隐藏;只要函数名字相同就会出现隐藏;这里和函数的参数无关;
- 继承的析构函数会自动先调用子类的析构函数再调用父类的析构函数;不需要写仍和的父类的析构函数;
- 继承中的静态成员在父类中不会被继承到子类
- 继承中的友元在继承中也不会被继承;
- vmstat命令是监视工具;可以显示cpu的使用律;这里和任务管理器相同;
- unname查看linux系统信息;
- sar 一个监视工具;可以监视cpu的状况;和系统状况;
- stat命令用于显示文件的状态信息
- top命令将会把cpu的状况和系统的状况显示在屏幕上‘;
- Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具
- free命令看到系统实际使用内存的情况,
- df命令是用来查看linux系统服务器文件系统的磁盘使用情况
- 在电脑打印————123时电脑是将'1'字符和’2‘字符和’3‘字符连在一起进行打印;
- 除法循环为了保证最后结果是1的(直接在除法后面添加+1)
- 测试代码时时使用relase
- 希尔的gap的两种排序方法
- 子类继承父类
- c++以后多使用&这里将参数的类型分为两种:输入型参数;输出型参数;这里输入型参数:在c++中多使用const+&;对于输出型参数:多使用&;
- 友元定义在外部的是全局函数;
- 继承的初始化;是按继承的声明顺序来初始化的;
- 代码写入的指令:echo
- 修改拥有者
- final关键字:用于修饰类:使其为最终类:在类名后添加;
- new建立匿名对象(使用构造函数时,可以不加括号)
- 子类继承父类不会创建新空间
- 一个问题解决父类内部多态实际问题
- final的作用:
- 代码段
- 强转:
- 函数地址:
- vim异常退出:
- vim 一个没有创建的文件时
- 创建文件的方法:
- su -do命令的使用条件
- c++引用要求不可改变;
- 递归每次调用会建立栈帧;
- A.C++语言的多态性分为编译时的多态性和运行时的多态性
- auto不可以作参数;
- 尽量不要使用指针的解引用传参数原因:可能指针指向的内容是空;这里就是空指针调用了;
- 构造函数强制生成默认构造函数;
- 递归一定要有参数:原因:
- 构造函数当写拷贝构造函数时,没有写无参数的构造函数;可以使用default,来强制写构造函数;
- 代码编译和运行过程
- 虚函数表在编译的时候创建;虚函数指针在运行时创建;
- 继承中子类对象创立对象时构造函数需要先调用父类的构造函数;
- 继承中析构函数的调用方法:先子类后父类;
- 标准库内的swap函数使用拷贝构造函数创造第三个变量
- vs结束循环,输入的方法:ctrl+c
- 树的深度和节点个数可以根据等比数列的求和;
- 二叉树的节点个数和层数的关系:
- 析构函数调用顺序的特例
- 引用和const变量都必须要初始化;
- 默认成员函数:构造函数;析构函数;拷贝构造函数;赋值运算符重载;
- 栈生长向下;堆生长向上
- 32位系统内存为4G大小时,堆最大空间到不了4G哦
- 析构函数被调用用来析构数组时:需要加【】
- 内置类型数组析构时;可以不用写【】,等价于free
- 模板中的函数模板可以省略参;
- 类模板的函数都是函数模板:
- 防止一个头文件重复包含:
- 范围for的底层是迭代器;
- 栈和队列没有迭代器:栈和队列不支持随机访问;
- 没学不用看![在这里插入图片描述](https://img-blog.csdnimg.cn/7420fdc987f74a12924e5d801c003d62.png)
- 二叉树的深度和高度之间的区别:
- 树的三种存储结构:
- 回调函数
- 1.容器的分类
- vector
- queue没有迭代器
- set不可以修改;增删查;
- 容器中只要可以使用迭代器就可以使用范围for
- c++中使用迭代器时范围是左闭右开;
- 自定义类型的*和->是写在迭代器类内的;
- C++所有的容器使用迭代器的构造函数都都是模板的所以可以适用所有其他容器迭代器;
- 这里除stack和queue意外;他们使用的是默认构造函数;
- 库的名称是文件名去掉前缀和去掉后缀
- printf打印数字是将数字格式化为字符进行打印:
- 死代码主要是指
1.继承中子类和父类之间的隐藏;只要函数名字相同就会出现隐藏;这里和函数的参数无关;
继承的析构函数会自动先调用子类的析构函数再调用父类的析构函数;不需要写仍和的父类的析构函数;
继承中的静态成员在父类中不会被继承到子类
继承中的友元在继承中也不会被继承;
vmstat命令是监视工具;可以显示cpu的使用律;这里和任务管理器相同;
unname查看linux系统信息;
sar 一个监视工具;可以监视cpu的状况;和系统状况;
stat命令用于显示文件的状态信息
top命令将会把cpu的状况和系统的状况显示在屏幕上‘;
Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具
free命令看到系统实际使用内存的情况,
df命令是用来查看linux系统服务器文件系统的磁盘使用情况
在电脑打印————123时电脑是将’1’字符和’2‘字符和’3‘字符连在一起进行打印;
显示器是字符文件
键盘的输入也是以字符为基础来进行输人;使用他也是字符文件
除法循环为了保证最后结果是1的(直接在除法后面添加+1)
测试代码时时使用relase
希尔的gap的两种排序方法
子类继承父类
在定义后面添加“:”+继承方式+父类名字;
c++以后多使用&这里将参数的类型分为两种:输入型参数;输出型参数;这里输入型参数:在c++中多使用const+&;对于输出型参数:多使用&;
友元定义在外部的是全局函数;
继承的初始化;是按继承的声明顺序来初始化的;
代码写入的指令:echo
修改拥有者
final关键字:用于修饰类:使其为最终类:在类名后添加;
new建立匿名对象(使用构造函数时,可以不加括号)
子类继承父类不会创建新空间
这里使用子类变量来调用父类的函数,变量时;会将子类的切片成父类对象;来以父类的方式来调用函数;
一个问题解决父类内部多态实际问题
final的作用:
修饰虚函数:使虚函数无法重写;
修饰类:使类无法继承;
代码段
代码段有;常量和函数;
强转:
1.类型之间有关联
2.&地址使用地址进行转:
函数地址:
普通函数 :
直接上函数名就可;
成员函数:&+域名+函数名;
vim异常退出:
出现test.c.swp文件;
这时可以点击r进入编辑页面;
但是每次登录都会有提醒恒麻烦;所以可以使用rm -rf .test.c.swp;
vim 一个没有创建的文件时
vim +一个不存在的文件
会进入文件内部 ;
1.什么都没干就按q退出(不会出现这个文件)
2.什么都没干就按wq退出(出现这个文件)
创建文件的方法:
vim+一个没创建的文件;
touch+一个没有创建的文件;
>+一个没有创建的文件;
su -do命令的使用条件
c++引用要求不可改变;
递归每次调用会建立栈帧;
A.C++语言的多态性分为编译时的多态性和运行时的多态性
这里的编译时的多态是模板和重载;
运行时的多态是继承;
auto不可以作参数;
尽量不要使用指针的解引用传参数原因:可能指针指向的内容是空;这里就是空指针调用了;
构造函数强制生成默认构造函数;
构造函数+“=default”
递归一定要有参数:原因:
递归的参数接受的是递归下一成的数据(就像父节点传子节点)使数据更加接近结果;
构造函数当写拷贝构造函数时,没有写无参数的构造函数;可以使用default,来强制写构造函数;
方式:
构造函数的正常调用+“=”+“default”
代码编译和运行过程
运行过程:
将.o的可执行程序导入内存中;从上到下逐条运行;
虚函数表在编译的时候创建;虚函数指针在运行时创建;
继承中子类对象创立对象时构造函数需要先调用父类的构造函数;
继承中析构函数的调用方法:先子类后父类;
标准库内的swap函数使用拷贝构造函数创造第三个变量
swap函数只是将变量内的数据 进行改变;而不改变地址;
vs结束循环,输入的方法:ctrl+c
树的深度和节点个数可以根据等比数列的求和;
二叉树的节点个数和层数的关系:
n个节点:h是层数
2^h-1/2-1
所以
h=log(n+1)
析构函数调用顺序的特例
全局便令:在main()函数运行结束后进行析构:所以全局变量都是最后析构
静态变量:在定义的{}结束时析构;
引用和const变量都必须要初始化;
默认成员函数:构造函数;析构函数;拷贝构造函数;赋值运算符重载;
栈生长向下;堆生长向上
栈生长向下 :地址逐渐变小
堆生长向上 ;地址逐渐变大
32位系统内存为4G大小时,堆最大空间到不了4G哦
析构函数被调用用来析构数组时:需要加【】
delate+数组名+【】、
否者只会将第一个进行析构;
内置类型数组析构时;可以不用写【】,等价于free
模板中的函数模板可以省略参;
类模板的函数都是函数模板:
原因:在类内定义;满足类的模板;
在类外定义需要添加类模板的示例化;
防止一个头文件重复包含:
范围for的底层是迭代器;
栈和队列没有迭代器:栈和队列不支持随机访问;
没学不用看
二叉树的深度和高度之间的区别:
树的三种存储结构:
三种存储结构的区别
回调函数
1.容器的分类
序列式容器:vector/list/deque/stack/queue(线性结构可以随机插入)
关联式容器:map/set(1.不可以随机插入;元素之间具有关联,2.其里面存储的是<key, value>结构的键值对,在数据检索时比序列式容器效率更高)
vector
queue没有迭代器
set不可以修改;增删查;
容器中只要可以使用迭代器就可以使用范围for
c++中使用迭代器时范围是左闭右开;
自定义类型的*和->是写在迭代器类内的;
C++所有的容器使用迭代器的构造函数都都是模板的所以可以适用所有其他容器迭代器;
这里除stack和queue意外;他们使用的是默认构造函数;
库的名称是文件名去掉前缀和去掉后缀
这个文件就是c库;
printf打印数字是将数字格式化为字符进行打印:
使用这个输出10的递减会输出10,90,80,70,60……10,00;
原因:%d只可以修该一个整数大小的数字;
修改:
头文件防止不被重包含的方法:
#pragma once
死代码主要是指
- 执行不到的代码. 2. 执行得到, 但没有任何作用的代码。 总而言之一句话: 死代码就是“不产生实际作用”的代码: