从Effective C++ 开始(第三版)

条款01:视C++为一个语言联邦

1.C 包含 区块,语句,预处理器,内置数据类型,数组,指针

2.Object-Oriented C++ C with Classes,包括构造函数和析构函数,封装,继承,多态,virtual函数,动态绑定 等。

3.TemplateC++ 泛型编程

4.STL 容器,迭代器,算法以及函数对象。

 

条款02 尽量以const,enum,inline 替换#define

            #define ASPECT_PATIO 1.653

记号也许从未被编译器看得见,也许在编译器开始就被移走了,原因:你所使用的名称可能并未进入记号表.

解决之道以一个常量替换上述的宏(#define):

const double AsepetRatio =1.63;

两种特殊情况:

1.定义常量指针时候通常放到头文件内,必须写两次

   const char* const authorName ="Scott Meyers";

   还可以写成

  const std::string authorNmae(

 

#include <string>
const  std::string authorName("Scott Meyers");


#include "stdafx.h"
#include "test2.h"
#include <iostream>

using namespace std;

int main(int argc, char* argv[])
{

 cout<<authorName;
 return 0;
}

2. 常量作用域

 

为了将常量的作用域限制于class内,你必须让它成为class 的一个成员 member,确保此常量,至多只有一份实体,必须让它成为一个static成员:

 

class GamePlayer{

private:

 static const int NumTurns = 5;

int scores[NumTurns];

};

 

明天继续!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值