
C++入门
文章平均质量分 56
努力敲代码的小王
少说,多做
展开
-
C++虚表的打印
运行以下代码后会发现Derive的func3(虚函数)放第一个继承的类里面。想要获得这个表我们需要取得头4/8个字节。虚表是一个函数指针数组。原创 2023-03-11 14:44:00 · 326 阅读 · 0 评论 -
从C到C++【多态】
delete p2;return 0;如果基类的析构函数为虚函数,此时派生类析构函数只要定义,无论是否加virtual关键字,都与基类的析构函数构成重写,虽然基类与派生类析构函数名字不同。虽然函数名不相同,看起来违背了重写的规则,其实不然,这里可以理解为编译器对析构函数的名称做了特殊处理,编译后析构函数的名称统一处理成destructor。原创 2023-03-09 16:14:30 · 414 阅读 · 0 评论 -
从C到C++【继承】
继承机制是面向对象程序设计使代码可以的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构举个例子,例如我们需要一个Person类和Student类,我们会发现学生是人类的一种,所以他会继承Person类的姓名,年龄等,Student类会有学号,这是不属于Person的,再没有学继承之前我们需要每个都写上姓名,年龄等,但有了继承我们就可以实现复用。原创 2023-03-09 16:11:52 · 413 阅读 · 0 评论 -
从C到C++【模版进阶】
类型形参:出现在模板参数列表中,跟在class或者typename之类的参数类型名称非类型行参:用作为作为模版的一个参数这样做的好处在于我们可以随时定义不同大小的ARRARY,在C语言中我们不可能定义多种不同大小的ARRAY。原创 2023-03-09 16:10:36 · 68 阅读 · 0 评论 -
C++实现STL容器【vector】
【代码】C++实现STL容器【vector】原创 2023-03-04 15:32:19 · 70 阅读 · 0 评论 -
C++实现string
【代码】C++实现string。原创 2023-03-04 15:30:40 · 154 阅读 · 0 评论 -
从C到C++【模版】
这篇文章主要是讲解模版的初级应用,在我们学习过函数重载以后,我们虽然可以定义多个相同名字的函数了,但是依旧不够方便,例如我们要写一个swap函数,我们需要把每个类型都写一遍,非常麻烦,但是有了模版以后就不需要了,另外这里还有一个概念叫做泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。原创 2023-02-27 23:23:09 · 69 阅读 · 0 评论 -
从C到C++【类和对象03】
以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个"成员变量"后面跟一个放在括号中的初始值或表达式。原创 2023-02-26 21:49:55 · 80 阅读 · 0 评论 -
从C到C++【类和对象02】
记住只有这几个成员函数编译器才会默认生成,例如重载大小,编译器不会自动生成,必须我们自己写,所谓的默认成员函数就是编译器可以自动帮我们写的,但是多数情况下不靠谱自定义类型可以不用写的成员函数:构造函数、析构函数内置类型可以不用写的成员函数:拷贝构造、赋值重载取地址重载不太常用,这里不做介绍。原创 2023-02-23 17:03:54 · 106 阅读 · 0 评论 -
从C到C++【类和对象01】
1.声明和定义都放在类中,如果声明和定义都放在类中,编译器会把他当成内联函数public:int _age;// 一定要注意后面的分号//实例化Person s1;s1._name="张三";s1._age=18;2.类声明放在.h文件中,成员函数定义放在.cpp文件中person.hpublic:int _age;// 一定要注意后面的分号person.cpptest.cppPerson s1;//实例化s1._name="张三";s1._age=18;原创 2023-02-23 17:02:17 · 106 阅读 · 0 评论 -
从C到C++【基础语法篇02】
2.auto要声明引用类型必须写。原创 2023-02-23 17:00:29 · 88 阅读 · 0 评论 -
从C到C++【基础语法篇01】
这篇文章适合已经学过c语言的读者!!!首先要说明的是C++兼容C的百分之99的语法在我们了解命名空间之前,我们先看两个c语言的例子1.这里可以跑过去,但是如果加入了头文件#include以后就跑不过去了,原因是因为stdlib.h中有rand这个库函数2.这里假设有2个头文件,一个是list.h,和queue.h这是我们编译时会发现跑不过去,原因在于这两个头文件都有struct Node,想要解决这个问题,除了改名就别无他法(C语言无法解决),但是C++引入了命名空间我们原创 2023-02-18 11:53:45 · 107 阅读 · 0 评论