随笔分类 -  C++

摘要:c++提供四种类型转换 static_cast转换内置数据类型和具有继承关系的指针和引用 class Building{};class Animal{};class Cat :public Animal{}; dynamic_cast转换具有继承关系的指针或引用,在转换之前进行对象类型检查 子类指针 阅读全文
posted @ 2019-04-18 21:13 九里明 阅读(138) 评论(0) 推荐(0)
摘要:案例 类头文件(Person.h) 类的实现(Person.cpp) 主函数(test.cpp) 编译结果 原因分析 1.模板的编译机制 模板需要两次编译 第一次编译是在实例化之前:用来分析基本的语法错误, 第二次编译是在实例化之后,当把这个类型替换之后,判断有没有语法错误. 编译器在看到模板的定义 阅读全文
posted @ 2019-04-16 22:05 九里明 阅读(473) 评论(0) 推荐(0)
摘要:基本概念纯虚函数是一个在基类中说明的虚函数,在基类中没有定义,要求任何派生类都定义自己的版本纯虚函数为个派生类提供一个公共界面(接口的封装和设计、软件的模块功能划分) 纯虚函数的语法virtual 类型 函数名(参数表) = 0; 一个具有纯虚函数的基类称为抽象类 纯虚函数和抽象类 1,含有纯虚函数 阅读全文
posted @ 2019-04-03 22:11 九里明 阅读(383) 评论(0) 推荐(0)
摘要:事实上,重载运算符返回void、返回对象本身、返回对象引用都是可以的,并不是说一定要返回一个引用,只不过在不同的情况下需要不同的返回值。 那么什么情况下要返回对象的引用呢? 原因有两个: 允许进行连续赋值 防止返回对象(返回对象也可以进行连续赋值(常规的情况,如a = b = c,而不是(a = b 阅读全文
posted @ 2019-03-16 15:26 九里明 阅读(3975) 评论(0) 推荐(2)
摘要:C++提供构造函数来处理对象的初始化 1.构造函数是一种特殊的成员函数,不需要用户来调用,定义对象时被自动执行。 2.构造函数名字与类名相同,无返回类型。 3.可以由用户自己定义实现,根据需要设计对数据成员进行初始化,依旧可以设置函数的默认参数。 4.如果我们没有定义构造函数,系统会为我们自动定义一 阅读全文
posted @ 2019-03-11 21:59 九里明 阅读(528) 评论(0) 推荐(1)