标签:const 函数 static 基类 程序设计 构造函数 赋值
易错点
- 1个指针=4字节(在翁阿姨编译器下)
- sizeof 的值应该在编译时就确定
- 重载函数中一定搞清楚 obj.data 和 data
- 8 进制下不能出现 8, 9,故 0288 这种表达式不合法
- 注意 Switch 语句:本质上是 goto
- 隐式转换和单参数构造共存导致⼆义性(两种隐式转换共存)
- 输出 double 时注意四舍五入!
- 注意基类函数有没有写 virtual,没写就不具有多态性
- 注意输出是否换行!
=
,->
,()
,[]
不可以重载成友元函数- 优先级的问题:
!
>&&
>||
- class 的 static 变量只能在类外定义;静态常量为 static const
- 不能修改字符串常量!
- 区分 getline, get
- [?] 继承时可以基类的同名函数;等于号不能 virtual
- 常量成员要在初始化列表中赋值
- double 不能取模
- 赋值函数注意特判
this=&other
- delete字符数组可以不加[]
- 声明 A 为 B 的友元,需要在 B 前面声明 A
- 派⽣类的析构函数会⾃动调⽤基类的析构,不需要显式调⽤,派⽣类的赋值重载需要显式调⽤基类的赋值重载函数
- 当有任意⼀种构造函数时,编译器不⾃动补上构造函数
- "" 操作符自动在末尾加上 '\0',故 sizeof "\0" = 2
- cin 一个字符串并不会读入 \n
不知道点:
- [?] 希尔排序 \(O(N^{\frac{2}{3}})\)
- [?] decltype 自动推断类型,尾置返回类型
- 拷贝构造函数,移动构造函数
- static, extern const 变量:被 static 后不能被 extern,另一个文件中的 const 不能被 extern,const 一定要赋初值
- [?] "SJTU", {"SJTU"}, {S,J,T,U} 等的区别
- int a[5]={0} 相当于全化为 0
- [?] lambda 表达式:lambda表达式是⼀个未命名的内联函数,可以赋值给⼀个函数指针。其捕获到的值是在创建时候的值⽽不是 使⽤时候的值。
- 正数的补码与原码相同,负数的补码为该数的反码+1
- ⾃定义类型的数组调⽤默认构造函数
- void* 可以指向任何类型
- strcpy、>>、<<、strlen都进⾏过重载 与'\0'有关
- 调⽤派⽣类析构函数会(⾃动)调⽤基类的析构函数
- 函数指针 (*func[6])()
- [?] public, private, protected 访问权限问题:派⽣类的友元也可以访问基类的public/protected 但⽆权访问private 等
- 友元函数是⼀个全局函数,函数定义可以在类中也可以在类外 定义在哪⾥都不是类的⼀部分
- static在栈消亡之后消亡
- [?] 流操作符
- 字符串常量:不能擅⾃delete 即不要移动构造
- 对象使⽤fail之后等于“坏掉”,⽆法继续使⽤。需要⽤cin.clear恢复状态
- ⽤read读⼊时可以使⽤cin.eof检查是否读到了EOF
问题
- char p[] = "1234",结束时需不需要 delete p?不需要
- 可以 delete一个空指针吗?可以
- '>>' 、get 通过对象的返回值判断是否到了末尾,返回值是什么?
标签:const,函数,static,基类,程序设计,构造函数,赋值 来源: https://www.cnblogs.com/jerx2y/p/CS1953.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。