More Effective C++ 条款0,1

2021-06-22 17:03

阅读:607

标签:技术   实现   int   条款01   运算符重载   枚举类   false   关于   cto   

More Effective C++ 条款0,1

条款0

关于编译器

不同的编译器支持C++的特性能力不同。有些编译器不支持bool类型,此时可用 enum bool{false, true};枚举类型来模拟bool类型。这允许参数类型为intbool的函数重载,但是这样做的缺陷是,对于内置的比较运算符,其仍返回int类型。
f(int);f(bool); f(a 。
但是一旦改用支持bool类型的编译器,情况可能会发生改变。另外一种方法是typedef:

typedef int bool; const bool false = 0; const bool true = 1;

技术分享图片
关于typedef的详细内容->typedef|
---

条款1

指针和引用的区别

  • 首先引用必须指向一个对象,并且必须赋初值,但是指针可以为空。
  • 引用只能指向它最初指向的对象,不能更改。指针可以更改。
  • 引用不需要担心为空的情况,但是指针必须进行空指针的检查
  • 运算符重载函数,例如operator[],返回的一般是引用
    vector v(5); v[1] = 1; 考虑如果返回是指针,则应该写成*(v[1])= 1;

结论
当你知道你需要指向某个东西,且绝不会改变,指向其他东西,或是当你实现一个操作符而其语法需求无法由pointers达成,你就应该选择引用。任何其他时候,请采用指针。

More Effective C++ 条款0,1

标签:技术   实现   int   条款01   运算符重载   枚举类   false   关于   cto   

原文地址:https://www.cnblogs.com/alanma/p/9678348.html

上一篇:spring框架概述

下一篇:XML 语言简介


评论


亲,登录后才可以留言!