基础议题(条款1-4)-创新互联

条款1:仔细区别pointer和reference

成都创新互联主要从事网站设计、成都网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务平谷,10多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108

1)pointer可以是null,可以重新赋值指向不同的对象;reference不可以是null,无法修改指向对象。

2)常用操作符重载时,用引用。原文例子:

vectorv(10)

v[5]=0;

重载的vector.[]操作时,返回引用。

个人总结:看个人习惯,应用更可靠一点,指针灵活一点,减少值传递,多用引用传递。

条款2:最好使用C++转型操作符

C风格的转型操作:

(type) expression

C++风格的转型:

static_cast(expression):常用,和C风格的功能基本相似,但多了一些编译期约束报错,大部分情况用这个。

const_cast(expression):特殊情况使用,将const的变量、去掉const属性,但必须是指针或引用作为左值。

dynamic_cast(expression):特殊情况使用,基类必须有虚函数、将基类指针指向派生类的指针,转成派生类指针指向派生类(安全的向下转换),运行期校验

个人总结:C++风格的类型转换优点多多,可以百度仔细学学。但是又臭又长(侯杰说的),确实我个人在使用时不知不觉就会换成C的。

条款3:绝对不要以多态(polymorphically)方式处理数组

个人总结:多态和指针算数不能混用,同样多态和指针数组也不能混用,原因是指针++操作时内存操作混乱。根本原因是C++规范不支持。但是我们一般也很少遇到

条款4:非必要不提供default constructor

个人总结:实际工作中写的类,太多情况需要default constructor,如果一个类不需要default constructor,改成私有函数?

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


本文题目:基础议题(条款1-4)-创新互联
文章出自:http://hbruida.cn/article/coccsi.html