介于马上要去面试了,还是恶补一下cpp吧。
- 虚函数表点这
- 虚析构函数点这
- map
- sort/qsort点这
- lockstep
- ecs
- 使用memset初始化一个类会导致类中的指针和虚函数表出现问题。相关链接
- 使用
memset(a,1,sizeof(a))
初始化a数组不会达到预期的效果,因为memset会把每个字节赋值为1就会变成16843009。 - sizeof会在编译期间转化为相应的数字(虽然听说某标准表示,为了配合动态数组有些可以在运行时计算),所以请不要使用sizeof计算函数指针类型参数的大小,会返回一个指针的长度,而不是这个指针指向的地址(数组,结构体,类)的长度。
- sizeof会计算字符串末尾的
\0
,而strlen不会. - vector增加新元素时可能会发生c储存位置的变化,就是整个vector位置发射了移动。
- C++常量折叠点此
- const修饰的变量在c中表示为只读,而在C++中表示为常量.
- const初始化常量的同时要赋值。
- ,(逗号运算符)优先级最低
- 结构体的对其这里
- virtual 函数是动态绑定,而缺省参数值却是静态绑定。绝不重新定义继承而来的缺省参数值!
- C++默默编写并实现了default构造函数、copy构造函数、copy assignment操作符,以及析构函数
- C++构造函数种类这里
- 怎么拒绝编译器自动生成的函数,将函数声明为private并且不予以实现。
- 如果class带有任何virtual函数,它就应该拥有一个virtual析构函数。
- 4种类型转换点这
- template
- explicit点这
- if else 与三目运算符12
- 短路求值1
- 函数入栈1
- 堆区,栈区1
- 虚函数表是放在内存哪个位置的?在每一个对象中吗?
- 编译成功、链接不成功可能是什么情况
- 变长参数1
- 为什么会有烫烫烫,屯屯屯。1
- 翻转字符
- 中文编码/编译
- 类怎么储存1
- sizeof1不计算值2
- 右值引用
- memmove memcpy