C++学习
文章平均质量分 58
Joseph风中追风
从农民变成码农之路。
展开
-
Effective C++ 之学习:from 条款21 to ...
条款21:Don't try to return a reference when you must return an object观点一:在使用引用的时候必须明确该引用指向谁,引用是常指针实现的,故而其所指向的对象肯定是唯一不可变的,所以在使用引用的时候必须明确其指向。观点二:函数应该尽可能的避免返回一个指向局部对象的指针或者引用。因为局部对象在函数体执行完之后就会被销毁,这时候,指针和引用就...原创 2018-06-05 17:16:02 · 233 阅读 · 0 评论 -
const_cast用法
顶层const&底层const:普通变量没有底层顶层的区别;int const a == const int a只有对应指针,引用才会有区别:指针常量->顶层const,指针本身不可被修改。int * const b = &a,a既可以通过a = x来改变,也可以通过*b = x来改变,但不可以把b指向别的地址、别的变量。例如声明int c = 2;b=c即会报错。指向常量的...原创 2018-06-19 16:44:45 · 8660 阅读 · 3 评论 -
static_cast&dynamic_cast
stactic_cast用来执行任意明确定义的类型转换,以及反变换。但其只是暴力转换,并不负责保证转换的安全性。1、基本数据类型之间的转换,int->char,int->enum,char->int,int->float,float->int,但精度的丢失不在static_cast的考虑范围,需要开发者自己考虑。2、将任何非常量对象的地址存入void* & 找...原创 2018-06-19 20:46:46 · 226 阅读 · 0 评论 -
reinterpret_cast
C++中四种类型转换中,reinterpret_cast功能最为强大,但也最为危险。字面意思就是“重新解释”,其主要与指针相关,将某种指针转换为任意其他类型指针或类型,而不做类型检查,内部其实是做二进制层面的转换(bit位数相同),也可以将整数类型转换为指针类型(代表地址),反之亦然,其强大之处是可以做无关类型之间的转换。tip1:不可以做两个非指针类之间的转换;tip2:不可以做去const的转...原创 2018-06-19 22:50:23 · 244 阅读 · 0 评论 -
虚函数相关
1、何为虚函数虚函数是C++多态实现的基石。虚函数是为了实现动态编译而设计,即:只有在具体的运行中,才会知道到底调用父类或者子类哪个版本的虚函数。其出现的根本原因是在C++中父类指针既可以指向子类对象也可以指向父类对象(反之不行)。如果没有虚函数,且子类中如果重写了与父类中函数原形相同的函数,则会隐藏父类中的此函数,编译器在编译阶段并不知道这个父类指针到底指向什么对象,所以最安全的办法就是调用父类...原创 2018-06-20 11:17:56 · 206 阅读 · 0 评论 -
C/C++ 运算符优先级
原文链接:https://blog.csdn.net/skywalker_leo/article/details/6237222抄写一遍,帮助记忆注:数字越小优先级越高。关于运算符优先级的两点说明:1、同等级的运算符,运算次序由结合方向来决定。特别注意:-和++,结合方向是自右向左,因而-i++相当于-(i++);2、由上述表可以归纳出大致的优先级(从高到低的顺序):初等运算符->单目运算符...转载 2018-07-10 10:39:38 · 2874 阅读 · 0 评论