C++ 牛客网做题笔记【1000题总结】
2017-04-21 09:47
381 查看
1:private修饰的成员变量,只能被该类自身修改和访问,注意只能!同包中的其他类也只能访问保护和公开的成员
2:mod运算符,取余;不能重载的运算符 “.” "、" "::" ''? :' "sizeof" sizeof不能被重载是因为像指针运算这样的内部操作都依赖于这个运算符
3:拷贝构造函数无需在调用另一个构造函数,它的参数是引用的类型
4:a++返回右值,是表达式,别再忘了!!!将a++ 转换为 a = a+1 ,后置的++或--的前面必须是左值a,不能是a+b这样的表达式
举例:9++;常量不可改变
(x+y)++;将其改为x+y = (x+y)++;错误,左值表达式不能有运算符
5:auto_ptr<A>Aobject(new A) 返回的就是A的智能指针,无需再加A*于尖括号中
6:void (A a){} B 是A的派生类,B b; void(b);这是非地址传递,转化为了基类对象,若改为A *a或 A &a,则可实现多态
7:左值必须可修改,且减号-比等号=的优先级高,在处理宏定义时,要注意到其文本替换之后的正确性
8:所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。
9:可以将迭代器看作指针,有== * ++等运算符,但是没有左移运算符
10:viod类型没有分配内存,而引用必须是另外一个固定变量的别名,所以不能有void类型的引用
11:文字游戏,do while等循环体和条件表达式的执行次数其实是没有具体关系的,因为其中可能有break或者continue
12:理解!signed char a = 0xe0,补码为1110 0000,原码为补码减一,除符号位取反为:1010 0000 也就是-32 将其赋给无符号数unsigned char b = a ,char b = 224 ;将其赋给无符号的unsigned int c = a,拓展为32位,负数的原码转为补码,补码直接高位补符号位!为0xfffffe0
13:%是二目运算符,要求运算对象必须是整数
14:局部函数中也可以改变全局static的值!!!
15:参数多态:函数模版及类模版;包含多态:虚函数virtual;重载多态:重载函数;强制多态:强制类型转换;
多态分为两种:通用多态、特定多态,通用多态对工作的类型不加限制,允许不同类型的值执行相同的代码;特定多态只对有限数量的类型有效,对不同类型的值执行不相同的代码。通用多态:参数多态、包含多态;特定多态:重载多态、强制多态
16:在enum中,首元素不赋值的话,默认为0;后一个元素不赋值的话。比前一个元素大1;
17:float和double这些小数类型的值在趋近于0时,无限趋近于0来判断是否 == 0;用|x - 0| < err来判断,这里需要用到取绝对值符号,float是fabs(x) < 0.0001f
18:重入问题:多任务系统中,当一个函数执行到一半,另一道程序从函数开头开始执行的情况,函数结果不受影响,则称该函数为可重入函数,一般情况下:1:使用了静态数据结构
2:使用了malloc和free 3:使用了标准IO库 4:进行了浮点运算(浮点运算大多数使用协处理器或者软件模拟来实现),这些函数一般情况下是不可重入的
19:全局变量仅由单个C文件或者单个函数访问时,可将这个变量定义为静态,降低模块间的耦合度
20:整个表达式的值为左边变量的值,赋值语句a = 4;条件的判断为a赋值之后的值是否为0;m = a>b; 该条件表达式的值为判断a是否大于b
2:mod运算符,取余;不能重载的运算符 “.” "、" "::" ''? :' "sizeof" sizeof不能被重载是因为像指针运算这样的内部操作都依赖于这个运算符
3:拷贝构造函数无需在调用另一个构造函数,它的参数是引用的类型
4:a++返回右值,是表达式,别再忘了!!!将a++ 转换为 a = a+1 ,后置的++或--的前面必须是左值a,不能是a+b这样的表达式
举例:9++;常量不可改变
(x+y)++;将其改为x+y = (x+y)++;错误,左值表达式不能有运算符
5:auto_ptr<A>Aobject(new A) 返回的就是A的智能指针,无需再加A*于尖括号中
6:void (A a){} B 是A的派生类,B b; void(b);这是非地址传递,转化为了基类对象,若改为A *a或 A &a,则可实现多态
7:左值必须可修改,且减号-比等号=的优先级高,在处理宏定义时,要注意到其文本替换之后的正确性
8:所谓的大端模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;所谓的小端模式,是指数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。
9:可以将迭代器看作指针,有== * ++等运算符,但是没有左移运算符
10:viod类型没有分配内存,而引用必须是另外一个固定变量的别名,所以不能有void类型的引用
11:文字游戏,do while等循环体和条件表达式的执行次数其实是没有具体关系的,因为其中可能有break或者continue
12:理解!signed char a = 0xe0,补码为1110 0000,原码为补码减一,除符号位取反为:1010 0000 也就是-32 将其赋给无符号数unsigned char b = a ,char b = 224 ;将其赋给无符号的unsigned int c = a,拓展为32位,负数的原码转为补码,补码直接高位补符号位!为0xfffffe0
13:%是二目运算符,要求运算对象必须是整数
14:局部函数中也可以改变全局static的值!!!
15:参数多态:函数模版及类模版;包含多态:虚函数virtual;重载多态:重载函数;强制多态:强制类型转换;
多态分为两种:通用多态、特定多态,通用多态对工作的类型不加限制,允许不同类型的值执行相同的代码;特定多态只对有限数量的类型有效,对不同类型的值执行不相同的代码。通用多态:参数多态、包含多态;特定多态:重载多态、强制多态
16:在enum中,首元素不赋值的话,默认为0;后一个元素不赋值的话。比前一个元素大1;
17:float和double这些小数类型的值在趋近于0时,无限趋近于0来判断是否 == 0;用|x - 0| < err来判断,这里需要用到取绝对值符号,float是fabs(x) < 0.0001f
18:重入问题:多任务系统中,当一个函数执行到一半,另一道程序从函数开头开始执行的情况,函数结果不受影响,则称该函数为可重入函数,一般情况下:1:使用了静态数据结构
2:使用了malloc和free 3:使用了标准IO库 4:进行了浮点运算(浮点运算大多数使用协处理器或者软件模拟来实现),这些函数一般情况下是不可重入的
19:全局变量仅由单个C文件或者单个函数访问时,可将这个变量定义为静态,降低模块间的耦合度
20:整个表达式的值为左边变量的值,赋值语句a = 4;条件的判断为a赋值之后的值是否为0;m = a>b; 该条件表达式的值为判断a是否大于b
相关文章推荐
- C++ 牛客网做题笔记【500题总结】
- C++ 牛客网做题笔记【1100题总结】
- C++ 牛客网做题笔记【600题总结】
- C++ 牛客网做题笔记【800题总结】
- C++ 牛客网做题笔记【300题总结】
- C++ 牛客网做题笔记【900题总结】
- C++ 牛客网做题笔记【1200题总结】
- C++ 牛客网做题笔记【400题总结】
- C++ 牛客网做题笔记【700题总结】
- C++ 牛客网做题笔记【200题总结】
- C++ 牛客网做题总结
- 类成员C++笔记六:static类成员总结,以及利用C++类static成员实现单例模式
- C++学习笔记&总结
- C++总结笔记(十)常见容器--Vector
- C++ 和 汇编 混合编程幼儿园经验总结**持续更新** 学习笔记贴
- C++学习笔记14,private/protected/public继承,私有继承,保护继承,公有继承(五)(总结)
- C++总结笔记(五)友元函数
- C++ 总结笔记 <一>
- C++总结笔记(八)排序算法之快速排序
- C++总结笔记(七)排序算法之插入排序