EffectiveC++学习(一)
来源:互联网 发布:网络监控安装教程 编辑:程序博客网 时间:2024/05/21 14:51
Accustoming yourself to C++
术语
declaration:告诉编译器某件东西的名称和类型
extern int x;//整型声明class classname;//类声明size_t numDigit(int i,double n);//函数声明template<typename T>;//模版声明
PS:整数也是一个对象,就算它是内置类型的。几乎所有C++标准程序库元素都在std命名空间里。
标准程序库:C++中的标准程序库是类库和函数的集合,其使用核心语言写成。标准程序库提供若干泛型容器、函数对象、泛型字符串和流(包含交互和文件I/O),支持部分语言特性和常用的函数,如开平方根。C++标准程序库也吸收了ISO C90 C标准程序库。标准程序库的特性声明于std命名空间之中。
标准模板程序库是C++标准程序库的子集,包含容器、算法、迭代器、函数对象等。也有些人使用术语STL代表C++标准程序库。
使用C++标准程序库时,不必加上“.h”。
typedef double wages;
typedef wages base,p;//base是double的类型,p是double的类型
initialization初始化“赋予对象初值”
对于用户自定义的对象而言,初始化在构造函数执行。default构造函数要么没有参数,要么每个参数都有缺省值。
copy构造函数用来“以同型对象初始化自我对象”
class widget{public: widget(); //copy构造函数 widget(const widget& rhs);//可以接收非const实参 //copy assignment操作符 widget& operator=(const widget& rhs);};widget w1;//defalut构造函数widgt w2(w1);//调用copy构造函数w1=w2;//调用copy assignment操作符//PS:赋值符号也可以用来调用copy构造函数widget w3=w1;//如果一个新对象被定义(w3),一定会有构造函数被调用,不可能赋值操作。copy构造函数很重要,因为它是定义一个对象如何passed by value。bool hasAccept(widget w);widget w1;hasAccept(w1);//上面的代码就说明W1被copy到w中去//PS:pass by reference to const是个好一点的选择
STL容器:
致力于容器,例如vector,list,set,mp;迭代器,例如vector::iterator,set::iterator;算法,例如for_each,find,sort等等。
item 1 view C++ as a federation of language
1、C
2、object_oriented c++:class(构造函数,析构函数)
3、template c++
4、STL
item2 perfer const enums and inline to #define
“使用编译器,而不是预处理器”
.#define ASP_RADIO 1.456
ASP_RADIO或许从未被编译器看见,若其被定义在一个不是自己写的头文件里,你对1.456毫无概念,会因为追踪它而浪费时间
一般的解决方案是const double a=1.456;
//若定义一个常量的指针(这里有一些知识涉及到顶层const和底层const)
const char* const auther=”bad man”;
//better:const string auther(“bad man”);
use const whenever possibe
- EffectiveC++学习(一)
- 《EffectiveC++》读书笔记(一)条款1-3
- EffectiveC++ 学习笔记1
- effectiveC++读书笔记(九)
- EffectiveC++实现(1)
- EffectiveC++
- effectiveC++
- EffectiveC++
- EffectiveC++学习笔记-条款2
- EffectiveC++学习笔记-条款3
- EffectiveC++学习笔记-条款4
- EffectiveC++学习笔记-条款7
- EffectiveC++学习笔记-条款8
- EffectiveC++学习笔记-条款9
- EffectiveC++学习笔记-条款10
- EffectiveC++学习笔记-条款11
- EffectiveC++学习笔记-条款12
- EffectiveC++学习笔记-条款13
- 买饮料难题
- linux sys节点属性 show以及store
- c语言 整形数据保留一位小数点并拆分各位显示
- Python里面的文件操作和类
- 使用gd2绘制基本图形
- EffectiveC++学习(一)
- openwrt opkg.conf
- 淘宝一面 关于JavaScript中的事件代理(例子:ul中无数的li上添加点击事件)
- 很全面的登陆注册界面实现,包括页面显示和后台数据库交互(写了我一下午)
- 虚拟机安装vmware tools
- HDU 3682 To Be an Dream Architect (STL去重--思路题目)
- 一步一步解析java集合框架HashMap源码(1)
- html5 sqlite(Web SQL)
- HDU 4651 数学 五边形数定理