effective C++学习笔记第一天
2014-04-24 19:29
120 查看
1.视C++为一个语言联邦
为了理解C++ ,必须认识其主要的次语言。幸运的是总共只有四个:
(1)C ,说到底C++ 仍是以C 为基础。blocks,statements,preprocessor,built-in data types,arrays,pointers
(2)Object-Oriented C++。这部分也就是C with Classes 所诉求的
(3)Template C++。这是C++ 的泛型编程(generic programming) 部分 ,是大多数程序员经验最少的部分。
(4)STL. STL 是个template 程序库
2.尽量以const, enum, inline 替换#define
(1)因为#define不被视为语言的一部分。
#define ASPECT RATIO 1.653 改为:const double AspectRatio = 1.653: //大写名称通常用于宏,
使用常量可能比使用#define 导致较小量的码,
3.尽可能使用const
(1)const它允许你指定一个语义约束,而编译器会强制实施这项约束。
有关指针的const,指针自身,指针所指物体,两者都(或都不)是const
如:
char greeting[] = "Hello";
char* p = greeting; //非const指针,非const数据
const char* p = greeting; //非const指针,const数据
char*const p = greeting; //const指针,非const数据
const char* const p = greeting; //const指针,const数据
通常,键字const 出现在星号左边,表示被指物是常量
出现在星号右边,表示指针自身是常量 (P18).
为了理解C++ ,必须认识其主要的次语言。幸运的是总共只有四个:
(1)C ,说到底C++ 仍是以C 为基础。blocks,statements,preprocessor,built-in data types,arrays,pointers
(2)Object-Oriented C++。这部分也就是C with Classes 所诉求的
(3)Template C++。这是C++ 的泛型编程(generic programming) 部分 ,是大多数程序员经验最少的部分。
(4)STL. STL 是个template 程序库
2.尽量以const, enum, inline 替换#define
(1)因为#define不被视为语言的一部分。
#define ASPECT RATIO 1.653 改为:const double AspectRatio = 1.653: //大写名称通常用于宏,
使用常量可能比使用#define 导致较小量的码,
3.尽可能使用const
(1)const它允许你指定一个语义约束,而编译器会强制实施这项约束。
有关指针的const,指针自身,指针所指物体,两者都(或都不)是const
如:
char greeting[] = "Hello";
char* p = greeting; //非const指针,非const数据
const char* p = greeting; //非const指针,const数据
char*const p = greeting; //const指针,非const数据
const char* const p = greeting; //const指针,const数据
通常,键字const 出现在星号左边,表示被指物是常量
出现在星号右边,表示指针自身是常量 (P18).
相关文章推荐
- 我的jFinal第一天
- JS基础学习第一天:什么是JavaScript?
- 第一天:Drools环境搭建配置
- java 获取当前年份 月份,当月第一天和最后一天
- 第一天——Xcode使用
- 2017-12-9 CSDN第一天小记
- 学习NodeJS第一天:node.js引言
- 第一天-开通了CSDN的博客
- 国庆第一天骑行记
- VsCrawler 使用第一天--解决测试坑问题
- 开博第一天,这里将记录我学习crack的点点滴滴,欢迎相同爱好者交流
- 努力奋斗第一天
- 2017-12-17 ITween第一天
- Android 学习第一天
- 冲刺第一天
- 日期加天数、字符串类型转date、获取本周第一天、本周最后一天、本月第一天、本月最后一天、上月第一天、上月最后一天时间
- Beta冲刺第一天
- 轻松自学ThinkPHP3.0第一天·上午
- linux实训第一天总结