牛客day3

1.保护成员和私有成员的区别在于把保护成员的访问范围扩展到派生类中。
2.关于内存泄漏
3.关于C语言指针:
非法指针是指该指针的值不是一个已经分配的内存地址。
当使用free释放掉一个指针内容后,指针变量的值被置为NULL
4.拷贝构造函数使用引用作为参数初始化创建中的对象。
5.凡是函数中未指定存储类别的局部变量,其隐含的存储类别是自动auto
6.循环语句
只能在循环体内和switch语句体内使用break语句
7.死循环
8.指针数组 数组指针等
9.全局变量可不可以定义在可被多个.C文件包含的头文件中
10.关于抽象类和纯虚函数
11.调用函数的过程
12.C++中类的初始化
静态函数中不能出现this指针
静态数据类型可以在类的外部进行初始化
13.C++在编译前由预处理器对预处理命令进行处理,编译时进行语法分析。
14.关于虚函数和函数重载
15.在C语言中,符号常量的定义要使用宏定义预处理命令
在C语言中的数组必须先定义,然后使用
16.在C++中,函数名实际是一个指针,它指向函数的入口。
17.关于中间件
18.关于指针和引用
19.对类中声明的变量,属于该类,某些情况下也可被该类不同实例所分享。
20.当说明一个共用体变量时系统分配给它的内存是成员中占内存最大者所需要的容量。
21.静态数据成员(可以直接用类名调用)
22.头文件中的ifndef/define/endif防止头文件被重复引用。
23.派生类一般都用公有派生
对基类成员的访问必须是无二义性的
赋值兼容规则也适用于多重继承的组合
24.如果企图通过一个空指针来访问一个存储单元,将会得到一个出错信息
25.在面向对象程序设计中,基类的构造函数和 析构 函数不能被继承.
26.建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数)这3种构造函数的调用顺序为:abc
27.C++内存分配中:
对于堆,大量的 new/delete 操作会造成内存空间的不连续
堆容易产生 memory leak
堆的效率比栈要低得多
栈变量引用容易逃逸
栈区一般由编译器自动分配释放,堆区一般由程序员分配释放。
28.||为逻辑或,只要有一个为真,即为逻辑真 1
|位按位或,化成二进制进行或运算。5|7=0101|0111=0111=7
按照优先级顺序排列如下:
~(按位取反 单目运算符) ~5 == ~0101(二进制形式) == 1010(二进制形式) == 10
&(按位与 双目运算符)5&7 == 0101 & 0111(二进制形式)== 0101 == 5
^(按位异或 双目运算符)5^7 == 0101 ^ 0111 (二进制形式) == 0010 == 2
|(按位或 双目运算符)5|7 == 0101 | 0111(二进制形式)== 0111 == 7
29.静态成员时类的成员
静态成员不能是虚函数
静态成员函数不能直接访问非静态成员
30.迭代器:map的插入操作不会导致迭代器失效
vector的删除操作只会导致指向被删除元素及后面的迭代器失效
map的删除操作只会导致指向被删除元素的迭代器失效
31.若用一堆数组名作为调用函数时的实参,则传递给形参的是数组首元素的地址
32.面向对象的基本特性是封装,继承和多态
构造函数不可以是虚函数,析构函数可以是虚函数
多态是为了接口重用,封装和继承是为了代码重用
33.STL中的常用容器包括:顺序性容器(vector、deque、list)、关联容器(map、set)、容器适配器(queue、stac)。
STL中一级容器是指, 容器元素本身是基本类型, 非组合类型。
set, multiset中元素类型是pair

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值