概述
C++浏览
1. 复合类型(compound type) 指针和数组类型
2. 数组(array)是一种顺序容器,包含单一类型的元素
一位偏移(off-by-one):下标从0开始
3. 静态分配:编译器在处理程序源代码时分配——效率——分配与释放由编译器自动处理
动态分配:程序执行时调用运行时刻库函数来分配——灵活——由程序员显式管理new和delete来完成。
1)用于分配特定类型的单个对象:
int *pint = new int ( 1024 );//分配了一个没有名字的int类型的对象,初始值为1024
delete pint;//删除单个对象
2)用于分配特定类型和维数的数组
int *pia = new int [ 4 ];//分配了一个含有四个整数元素的数组
delete [] pia;//删除一个对象数组
如果忘记了删除动态分配的内存,会出现内存泄漏(memory leak)
4. 指针类型:存放对象的内存地址值——主要作用是管理和操作动态分配的内存
取地址(address-of)操作符(&)
解引用(dereference)操作符(*)来解除指针的引用,使其指向实际对象
5. 模板机制:对某种抽象进行扩展,使其能够支持无限数目的数据类型
6. 类的一般形式
class classname {
public:
//公有操作集合
private:
//私有操作集合
};
classname myobject;
成员访问操作符(member access operator):用于类对象的点操作符(.),以及用于类对象指针的箭头操作符(->)
构造函数(constructor)
类的公共接口与私有实现代码的分离,称为信息隐藏(information hiding)
7. 内联函数(inline function)机制:在它的调用点上被展开,不会引入任何函数的调用。在类定义中被定义的成员函数会被自动动作是内联函数,此外也可以用inline关键字显式的要求一个函数被视为内联函数。
8. 函数重载(function overloading)机制,允许两个或更多个函数使用同一个名字,限制条件是它们的参数表必须不同(参数类型不同或参数的数目不同)
9. 被声明为static的数据成员是一类特殊的共享数据成员,无论这个类的对象被定义了多少个,静态数据成员在程序中只有一份。
10. 类域操作符(class scope operator)(双冒号::)
11. 引用(reference),classname &rhs,引用是一种没有指针语法的指针(所以用点操作符而不是箭头操作符rhs._size),与指针一样,引用提供对对象的直接访问。
12. 析构成员函数(destructor member function):在类的名字前加一个波浪线(~)来标识,会释放在类对象使用和构造过程中所获得的资源。
13. 希望防止派生类直接访问某个成员,就声明为基类的private成员
确信某个成员提供了派生类需要直接访问的操作或数据存贮,且通过该成员,派生类的实现会更有效,则把该成员声明为protected.
14. 对类型相关的成员函数,标记为virtual虚拟的,它的算法由特定的基类或派生类的行为或实现来决定。
对一个非虚拟函数调用,编译器在编译时刻选择被调用的函数;而虚拟函数调用的决定则要等到运行时刻。
15. 多继承(multiple inheritance):一个类可以从两个或多个基类派生而来
虚拟继承,在这种继承方式下的单个实例在多个派生类之间共享
16. 泛型设计
template < class elemType >
//在需要将类或函数定义内部的类型和值参数化时,用作占位符
实例声明就是在类模板名的后面加上一对尖括号,然后写上实际的类型
Array<int>
eg: class ArrayRC : public Array<elemType>{…};
17. 异常(exception)是指在运行时刻程序出现的反情形,如数组下标越界,打开文件失败以及可用动态内存耗尽等等。
异常处理(exception handling)机制:
1)程序中异常出现的点,一旦识别出异常,将会导致抛出(raise或throw)异常
2)程序中异常被处理的点。Try,catch子句
18. 名字空间 namespace
最后
以上就是热情奇异果为你收集整理的C++primer中文版笔记--C++浏览的全部内容,希望文章能够帮你解决C++primer中文版笔记--C++浏览所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复