C++
C++
WangGarrison
镜像网站 https://wanggarrison.top
展开
-
C++:多态、虚函数
文章目录基本概念虚函数final与override区分函数重载、同名隐藏、覆盖虚函数与默认实参虚析构函数回避虚函数的机制纯虚函数和抽象类虚函数与虚基类的区分基本概念多态:多态性是面向对象的关键技术之一。多态可以认为就是同一接口有不同的形态。即利用多态技术,可以调用同一个函数名的时候,实现完全不同的功能。多态分为静态多态和动态多态。函数重载、运算符重载以及模板都是属于静态多态,也称编译时多态。动态多态也称运行时多态,即在程序运行阶段才能确定的关系,例如某些函数的调用关系在编译阶段无法确定,到了运行阶段原创 2020-12-08 11:34:38 · 352 阅读 · 0 评论 -
C++:继承
文章目录基本概念访问控制和继承私有继承保护继承公有继承可访问性成员属性为protected的优点构造、析构顺序构造函数、析构函数继承问题二义性和支配规则虚基类赋值兼容与切片现象基本概念继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构。体现了由简单到复杂的认识过程。多态性(polymorphism)是考虑在不同层次的类中,以及在同一类中,同名的成员函原创 2020-11-23 22:45:21 · 935 阅读 · 0 评论 -
C++:函数模板、类模板
int Max(int a, int b) {return a>b? a : b; }char Max(char, char b) {return a>b? a : b; }double Max(double a, double b) {return a>b? a : b; }以上是C++里函数的重载,C语言不支持函数重载,C语言汇编的时候对于如上三个Max, 都会起名为_Max, 对于C语言就会发生命名冲突,所以C不可以函数重载;而对于C++,C++编译的时候会用名字粉碎技术,对原创 2020-11-11 23:09:51 · 213 阅读 · 0 评论 -
C++:标准模板库简介、vector
标准模板库简介C++标准模板库(Standard Template Library,STL)是一个标准化的模板化的对象容器库,包含多种数据结构和算法,STL的核心包括以下三个组件:容器类:容器类是管理序列的类,是容纳一组对象或对象集的类。通过容器类提供的成员函数,可以实现诸如向序列中插入元素,删除元素,查找元素等操作,这些成员函数通过返回迭代器来指定元素在容器中的位置迭代器:迭代器是面向对象版本的指针,它可以用于遍历对象集合的元素。这些集合可能是容器,也可能是容器的子集算法:算法作用于容器。它们原创 2020-11-11 12:16:36 · 337 阅读 · 0 评论 -
C++:运算符重载
void原创 2020-11-09 12:17:31 · 701 阅读 · 5 评论 -
C++:new与malloc的区别
new与malloc都是动态管理内存的入口,都可以动态创建内存new的三种用法:(下面三种用法经常使用的是第一种用法,第一种用法包含了用法2和用法3,以下区别的讨论也是基于第一种用法讨论的)Object *op = new Object(10); //new作为运算符的使用:开辟空间、调动构造函数Object *os = (Object*)::operator new(sizeof(Object));//该用法与malloc一样,只开辟空间不会调动构造函数new(os) Object(100)原创 2020-11-05 17:31:21 · 220 阅读 · 0 评论 -
C++:构造、析构、引用与拷贝构造
构造函数类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。类的数据成员多为私有的,要对它们进初始化,必须用一个公有函数来进行。同时这个函数应该在且仅在定义对象时自动执行一次。这个函数就是构造函数。它由系统自动调动,用户不可以调动。构造函数是类的特殊的公有成员函数,有如下特征:函数名与类名相同,如:CGoods();无函数返回类型说明(注意:是没有而不是void,即什么也不写,不可写void。实际上构造函数有返回值,返回的是构造函数所创建的对象)系统自动调用。在程原创 2020-10-27 22:58:58 · 925 阅读 · 0 评论 -
C++:类、对象、this指针、内联函数
类现实世界中的实体可以抽象出类别的概念。对应于计算机世界就有一个**类(class)**的概念,因为类是一个抽象的概念的对应体,所以计算机不给它分配内存,只有当类实例化为对象时,给对象分配内存...原创 2020-10-24 18:59:48 · 459 阅读 · 1 评论 -
C++:C、C++区别
1. 输入、输出C语言:头文件:#include <stdio.h>输入:scanf输出:printfC++:头文件:#include <iostream> using namespace std; //打开std命名空间输入:cin //预定义好的输入流对象名,与提取运算符 >> 配合使用,从键盘上提取输出:cout //预定义好的输出流对象名,与流插入运算符 << 配合使用, 换行使用endlcin与scanf的区别:sca原创 2020-10-24 14:46:41 · 176 阅读 · 1 评论