C++学习
文章平均质量分 71
韦轩
软件工程
展开
-
复合数据类型
主要内容: 1、数组 2、 字符串 3、String类 4、结构体 5、共用体 6、枚举 7、new/delete 8、模板类vector 9、c++ 11的模板类 array 一、数组 1、 创建数组的声明的三个基本条件 通用格式:原创 2015-04-02 22:43:19 · 1131 阅读 · 0 评论 -
c++顺序容器的操作
一、容器定义的类型的别名所有容器都提供的类型别名size_type无符号整型,足以存储容器类型的最大可能容器长度iterator容器的迭代器类型const_iterator容器的只读迭代器类型reverse_iterator按逆序寻址元素的迭代器类原创 2015-04-15 19:00:14 · 920 阅读 · 0 评论 -
RTTI 和 类型转换运算符
一、RTTI:Runtime Type Identification的简称RTTI用于只适用于包含虚函数的类二、RTTI的三个元素:dynamic_cast 运算符将使用一个指向基类的指针来生成一个指向派生类的指针。否则,该运算符返回0--->空指针typeid运算符返回一个指出对象的类型的值type_info结构存储了有关特定类型的信息1、dynamic_原创 2015-04-15 10:37:27 · 656 阅读 · 0 评论 -
类模板
一、类模板的定义格式在普通类前添加template class class_name{}//或者template class class_name{}template class class_name{};定义类模板代码:#ifndef MYSTACK_H#define MYSTACK_H#include template class MyStack{原创 2015-04-14 15:33:04 · 451 阅读 · 0 评论 -
C++异常
常见的程序检错方法一、调用abort()位于头文件 cstdlib中,功能是向标准错误流(cerr)发送消息 abnormal program termination 程序异常终止,然后终止程序二、返回错误码查看函数的返回值判断程序程序是否正常执行三、异常机制引发异常使用处理程序捕捉异常使用try块#include using namespace std;/原创 2015-04-15 09:55:26 · 1809 阅读 · 0 评论 -
c++文件I/O
一、简单的文件输入和输出#include #include #include using namespace std;int main(){ //让程序写入文件 //1、创建ofstream 对象 //2、将该对象与对应的文件关联 //3、输出到文件 //4、关闭文件 string filename; cin>>filena原创 2015-04-14 12:46:03 · 669 阅读 · 0 评论 -
抽象基类
一、抽象基类ABC (abstract base class)包含纯虚函数的类,也叫抽象类应用场景:不满足 is --a 关系的两个类,抽取他们的共同特性,放在一个ABC中,然后从这个类中派生出两个子类二、c++使用纯虚函数实现未实现的函数纯虚函数声明的结尾处=0virtual testPureVirtualFunction() const = 0;当类包含纯虚原创 2015-04-13 11:43:16 · 932 阅读 · 0 评论 -
虚函数的工作原理和注意事项
一、编译器如何处理虚函数编译器为每一个对象添加一个隐藏成员,隐藏成员中保存了一个指向函数地址数组的指针。这个数组被称为虚函数表虚函数表中存储了为类对象进行声明的虚函数的地址。如果派生类提供了虚函数的新定义,改新函数将保存新函数的地址,如果派生类没有重新定义虚函数,那么虚函数表保存函数原始版本的地址不管类中包含的虚函数的个数有多少,都只给对象提供一个地址成员(隐藏成员),只是原创 2015-04-13 10:49:37 · 908 阅读 · 0 评论 -
静态联编和动态联编
一、函数名联编将源代码中的函数调用解释为执行特定的函数代码块被称为函数名联编,在编译过程完成的联编被称为静态联编但是虚函数的存在使得静态联编比较困难,所以编译器必须生成能够在程序运行时选择正确的虚函数的代码,称为动态联编二、在c++中,动态联编与通过指针和引用调用的方法相关三、将派生类的指针或者引用转换为基类指针或引用称为向上强制转换,可以不进行显示类型转换 b原创 2015-04-13 10:12:46 · 632 阅读 · 0 评论 -
c++的代码重用
一、公有继承 不是实现代码重用的唯一途径,还有很多其他途径---包含,组合或者层次化,使用私有或保护继承,多重继承二、类 valarray头文件 valarray。这个类用于处理数值,是一个模板类,可以使用初始化列表初始化 valarray test = {...}三、关键字 explicit防止单参数的构造函数的隐式转换,即关闭 隐式转换这里的隐式转换是指原创 2015-04-13 20:05:57 · 1317 阅读 · 0 评论 -
面对对象之继承
一、原始类被称为基类或者父类,继承类被称为派生类或者子类1、派生子类的语法:class deriveClass :public BaseClass{}class deriveClass :protected BaseClass{}class deriveClass :private BaseClass{}2、子类继承父类做了什么工作子类对象存储了父类的数据成员子类对象可以使原创 2015-04-13 10:03:37 · 588 阅读 · 0 评论 -
类设计和继承的注意事项
一、编译器生成的成员函数1、默认构造函数(没有参数,或者参数有默认值),如果派生类的成员初始化列表没有显式的调用基类的构造函数,编译器会调用基类的默认构造函数。如果定义了构造函数,那么编译器将不会定义默认构造函数,如果需要默认构造函数,需要自己定义。2、复制构造函数(拷贝构造函数),复制构造函数接受其所属类的对象作为参数格式:classname(const classname& c原创 2015-04-13 11:50:14 · 807 阅读 · 0 评论 -
c++面对对象基础知识
一、类的定义格式class calss_name{ private: data member declarations; public: member functions;}二、构造函数1、在程序声明对象时,将自动调用构造函数2、c++提供两种构造函数初始化对象的原创 2015-04-10 15:29:45 · 928 阅读 · 0 评论 -
c++顺序容器定义和初始化
一、顺序容器的定义 容器是容纳特定类型对象的集合。这种容器根据位置来存储和访问元素。就是顺序容器二、容器适配器 根据原始的容器类型所提供的操作,通过定义新的操作接口,来适应基础的容器类型三、顺序容器的类型和容器适配器顺序容器 容器适配器 vector支持快速随机访问原创 2015-04-15 18:54:23 · 2984 阅读 · 0 评论