程序设计

易错点

  1. 1个指针=4/8字节
  2. sizeof 的值应该在编译时就确定
  3. 短路求值
  4. 重载函数中一定搞清楚 obj.data 和 data
  5. 8 进制下不能出现 8, 9,故 0288 这种表达式不合法
  6. 注意 Switch 语句:本质上是 goto
  7. 隐式转换和单参数构造共存导致⼆义性(两种隐式转换共存)
  8. 输出 double 时注意四舍五入
  9. 注意基类函数有没有写 virtual,没写就不具有多态性
  10. 注意输出是否换行!
  11. =, ->, (), [] 不可以重载成友元函数
  12. 优先级的问题:! > && > ||
  13. class 的 static 变量只能在类外定义;静态常量为 static const
  14. 不能修改字符串常量!
  15. 区分 getline, get
  16. 继承时可以基类的同名函数;等于号不能 virtual
  17. 常量成员要在初始化列表中赋值
  18. double 不能取模
  19. 赋值函数注意特判 this=&other
  20. delete字符数组可以不加[]
  21. 声明 A 为 B 的友元,需要在 B 前面声明 A
  22. 派⽣类的析构函数会⾃动调⽤基类的析构,不需要显式调⽤,派⽣类的赋值重载需要显式调⽤基类的赋值重载函数
  23. 当有任意⼀种构造函数时,编译器不⾃动补上构造函数
  24. "" 操作符自动在末尾加上 '\0',故 sizeof "\0" = 2
  25. cin 一个字符串并不会读入 \n
  26. 不同 template 的函数实为不同函数,static 的值不一样
  27. const char *p 和 char *const p 的区别
  28. new int*[3]

不知道点:

  1. [?] 希尔排序 \(O(N^{\frac{2}{3}})\)

  2. decltype 自动推断类型,尾置返回类型

  3. 拷贝构造函数,移动构造函数

  4. static, extern const 变量:被 static 后不能被 extern,另一个文件中的 const 不能被 extern,const 一定要赋初值

  5. "SJTU", {"SJTU"}, {‘S’,‘J’,‘T’,‘U’} 等的区别

  6. int a[5]={0} 相当于全化为 0

  7. lambda 表达式:lambda表达式是⼀个未命名的内联函数,可以赋值给⼀个函数指针。若用 = 捕获,其捕获到的值是在创建时候的值⽽不是 使⽤时候的值。若用 & 捕获,是使用时的值。

  8. 正数的补码与原码相同,负数的补码为该数的反码+1

  9. ⾃定义类型的数组调⽤默认构造函数

  10. void* 可以指向任何类型

  11. strcpy、>>、<<、strlen都进⾏过重载 与'\0'有关

  12. 调⽤派⽣类析构函数会(⾃动)调⽤基类的析构函数

  13. 函数指针 (*func[6])()

  14. [?] public, private, protected 访问权限问题:派⽣类的友元也可以访问基类的public/protected 但⽆权访问private 等

  15. 友元函数是⼀个全局函数,函数定义可以在类中也可以在类外 定义在哪⾥都不是类的⼀部分

  16. static在栈消亡之后消亡

  17. 流操作符

  18. 字符串常量:不能擅⾃delete 即不要移动构造

  19. 对象使⽤fail之后等于“坏掉”,⽆法继续使⽤。需要⽤cin.clear恢复状态

  20. ⽤read读⼊时可以使⽤cin.eof检查是否读到了EOF

  21. 强制类型转换:static_cast<double> a/b.

  22. 函数也能被申明为静态的

  23. 如果自定义派生类赋值运算符重载函数,必须显式调用基类的赋值运算符重载函数:

    derive operator=(const derive &other) {
    	if (this == &other) // ...
        people::operaor=(other);
        // ...
    }
    

问题

  1. char p[] = "1234",结束时需不需要 delete p?不需要
  2. 可以 delete一个空指针吗?可以
  3. '>>' 、get 通过对象的返回值判断是否到了末尾,返回值是什么?
    ( >> ) 可以转化成 bool 类型。 get(x), x 为文件末尾时值为 -1,或者 255
posted @ 2022-01-11 00:27  Jerx2y  阅读(87)  评论(0编辑  收藏  举报