- 博客(5)
- 收藏
- 关注
原创 More Effective C++条款3
这个条款就一条重要结论:数组和多态不能混用,否则会出现无法处理的错误。继承的最重要性质之一就是:可以通过"指向base class objects"的pointers和references,来操作derived class objects。如此的pointers和references,其行为是多态的。class BST{...};class BalanceBST : public BST{...};void PrintBSTArray(const BST array[], int numEle
2021-04-09 12:33:34
176
原创 More Effective C++ 条款2:最好使用C++转型(类型转换)操作符
static_cast:静态类型转换。编译器在编译期处理;用于基本数据类型之间的转换。dynamic_cast:动态类型转换。运行期间确定类型;用来执行继承体系中“安全的向下转型或跨系转型动作”。意思就是可以将指向父类的指针或引用“转型为”指向为子类的指针或引用,并且得知时候转型成功,如果转型失败会返回一个空指针(当转型对象是一个pointer)会一个exception(当转型对象是reference)。同时语法运用在缺乏虚函数的类型身上,也不能改变类型的常量性(constness)const_cast
2021-04-09 12:12:19
196
原创 More Effective C++条款1指针与引用
条款1主要讲解指针引用的使用时机:结论是:当你知道你需要指向某个东西,而且绝对不会改变指向其他东西,或者当你实现一个操作符儿语法需求无法由pointer实现,应该选择reference,其他任何时候都应该选择pointer。引用:给变量起别名。语法:数据类型&别名 = 原名int main() {int a = 10;int &b = a; //此处引用之后,a,b均指向同一个内存地址 之后b不可以更改指向,引用的底层原理就是一个指针常量 ...
2021-04-09 10:23:31
169
转载 STL之vector的push_back过程详解
转载:https://blog.csdn.net/cxc576502021/article/details/83020617
2021-04-07 10:10:14
376
转载 vector动态扩容
vector以连续的数组存放数据,当vector空间已满时会申请新的空间并将原容器中的内容拷贝到新空间中,并销毁原容器,存储空间的重新分配会导致迭代器失效,因为分配空间后需要进行拷贝,编译器会预分配更多空间以减少发生拷贝影响程序效率。扩容的大小叫做扩容因子,扩容因子由编译器决定,VS的扩容因子为1.5,G++中,扩容因子为2。如果个人电脑是windows一般不用G++,而是用VS的IDE来编译运行,如果是linux系统,一般用G++,Mac系统一般用clang(linux也可以用clang,但是G++
2021-04-07 09:45:59
1364
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人