本文主要是介绍程序设计,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
易错点
- 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 通过对象的返回值判断是否到了末尾,返回值是什么?
这篇关于程序设计的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!