C++ 智能指针
摘要:C++中资源的回收依赖于显示定义的回收资源的函数。为了实现资源的自动回收,c++引入了一种能够近似自动回收的方法就是智能指针。 智能指针是基于一种叫做 RAII 的思想,(Resource Acquisition Is Initialization) 将资源的回收在定义变量的时候就设置好。智能指针的
阅读全文
C++ queue容器
摘要:一、queue简介 queue相当于队列,队列是先进先出的,和排队类似。队头的访问和删除操作只能在队头进行,添加操作只能在队尾进行。不能访问队列中间的元素。queue 可以用 list 和 deque 实现,默认情况下用 deque 实现。queue 同样也有和 stack 类似的 push、pop
阅读全文
C++ list双向链表容器
摘要:一、list容器简介 list是顺序容器的一种。list容器完成的功能实际上和数据结构中的双向链表是极其相似的,list中的数据元素是通过链表指针串连成逻辑意义上的线性表。双向链表的每个元素中都有一个指针指向后一个元素,也有一个指针指向前一个元素。list 容器不支持根据下标随机存取元素。搜索的速度
阅读全文
C++类继承中内存
摘要:内存布局的原则是:成员变量按其被声明的顺序排列,按具体实现所规定的对齐原则在内存地址上对齐。 除非为了实现虚函数和虚继承引入的隐藏成员变量外,C++类实例的大小完全取决于一个类及其基类的成员变量!成员函数基本上不影响类实例的大小。实际上只有成员变量才占用类实例的空间。静态成员存放在程序的数据段中,不
阅读全文
C++纯虚函数和抽象基类
摘要:纯虚函数指在基类中没有实现代码,专门为了派生类继承重定义使用! 如:virtual void show() const=0; //纯虚函数 含有纯虚函数的类都可以叫做抽象类,专门用来被继承,重定义实现的,不能被创建实例! 好处:方便将多个派生类使用基类指针数组进行统一管理
阅读全文
C++ 虚函数实现原理
摘要:使用一个指向虚函数表的指针 派生类与基类共用一个指向虚函数表的指针,如果虚函数没有被重新定义,则此虚函数地址不变,如果改变或添加新的虚函数,将保存为一个新的地址!! 无论虚函数有多少个,类与实例对象都只保存一个vtbl,只是指向的虚函数表的大小不同而已!! 可见使用虚函数,将增加以下时间和空间成本:
阅读全文
C++ 类继承
摘要:一、IS-A继承 1、公有继承 特性 (1)保持基类的访问权限不变,基类数据成员只能通过基类的方法访问 (2)派生类需要自己的构造函数,创建对象时,需要使用成员初始化列表,将基类成员一起初始化 (3)派生类可以重载基类成员函数,也可以添加额外的方法和数据成员 (4)创建派生类对象时,基类对象将被先行
阅读全文
C++ 术语表
摘要:参数argument:向函数传递的值 赋值assignment:抹去一个对象的当前值,用一个新值取代 程序块block:零条或多条语句的序列,用花括号包围 缓冲区buffer:一个存储区域,用于保存数据。IO设施通常将输入或输出的数据保存在一个缓冲区中,读写缓冲区的动作与程序中的动作是无关的,可以显
阅读全文
C++ 类简介
摘要:一个类定义了一个类型,以及与其关联的一组操作。类机制是C++最重要的特性之一。C++最初的一个设计焦点就是能定义使用上像内置类型一样的自然的类类型。每个类实际上都定义了一个新的类型,其类型名就是类名。一般而言,类的作者决定了类类型对象上可以使用的所有操作。 文件重定向 文件重定向机制允许将标准输入和
阅读全文
C++ 控制流
摘要:语句一般是顺序执行的:语句块的第一条语句首先执行,接着是第二条语句等。 while语句 while语句反复执行一段代码,直至给定条件为假为止。while语句的形式为 while(condition) statement while语句的执行过程是交替地检测condition条件和执行关联的语句sta
阅读全文
C++ 注释
摘要:注释通常用于概述算法,确定变量的用途,或者解释晦涩难懂的代码段。编译器会忽略注释,因此注释对程序的行为或性能不会有任何影响。 C++中注释的种类 C++中有两种注释:单行注释和界定符对注释。单行注释以双斜线(//)开始,以换行符结束。当前行双斜线右侧的所有内容都会被编译器忽略,这种注释可以包含任何文
阅读全文
C++输入输出
摘要:C++语言并未定义任何输入输出(IO)语句,只是包含了一个全面的标准库来提供IO机制等。iostream库包含两个基础类型istream和ostream,分别表示输入流和输出流。一个流就是一个字符序列,是从IO设备读出或写入IO设备的。术语“流”表达的是:随着时间的推移,字符是顺序生成或消耗的。 标
阅读全文
编写一个简单的C++程序
摘要:每个C++程序都包含一个或多个函数,其中一个必须命名为main。操作系统通过调用main来运行C++程序。一个函数的定义包含4部分:返回类型、函数名、一个括号包围的形参列表(允许为空)以及函数体。main函数的返回类型必须为int,即整数类型。函数体是一个以左花括号开始,以右花括号结束的语句块,其中
阅读全文