
C++
文章平均质量分 81
嘻嘻兮
Stay hungry,Stay foolish
展开
-
C++ 虚继承
对于虚继承而言,是用于解决其在多重继承时出现的二义性问题,所以首先我们先来看看多重继承时会出现的问题//家具类class CFurniture{public: CFurniture() { m_nPrice = 0; } virtual ~CFurniture() { printf("virtual ~CFurni...原创 2020-07-06 22:35:02 · 776 阅读 · 0 评论 -
C++ 虚函数
对于虚函数而言,这篇博客主要侧重于理解虚函数的实现机制,也就是如何实现的多态?在C++中,使用virtual关键字声明的函数为虚函数。当类中有虚函数时,编译器会将该类中所有虚函数的首地址保存在一张表中,这张表也称为虚函数地址表(虚表),在我们代码层面可以理解为函数指针数组。同时编译器还会在类中添加一个隐藏数据成员,该成员称为虚表指针,该指针也就是用于保存前面所说的虚表首地址。好了,下面就先...原创 2020-04-19 20:21:01 · 719 阅读 · 0 评论 -
C++ 继承
对于继承,我们先不说概念。下面我还是先用C模拟并借助汇编的方式来理解它,侧重于学习继承的内存模型。我们先来看代码,设计三个类,People类,Teacher类,Student类struct Person { int age; //年龄 int sex; //性别 }; struct Teacher { int age; //年龄 int sex; //性...原创 2019-08-10 19:14:11 · 864 阅读 · 0 评论 -
C++ 权限控制
首先,先来谈谈为什么会有权限控制这一东西?看如下代码struct Test{ int a; int b;};int main(){ Test test; test.a = 2; test.b = 3; test.a = 4; system("pause");}这段代码是不是写起来特别爽,一直写一直爽。好了,此时假设对于这...原创 2019-08-05 23:41:30 · 757 阅读 · 0 评论 -
C++ 构造和析构
啥是构造和析构,下面我们还是从C语言的角度来学习C++,简述构造和析构语法的设计由来。先看如下代码:struct Test{ int a; int b;};int main(){ Test test; test.a = 5; test.b = 7; printf("%d %d",test.a,test.b); return...原创 2019-08-04 19:10:17 · 637 阅读 · 0 评论 -
C语言到C++的改进
下面总结下C语言到C++后的一些改进,主要偏语法上哈1. 类型敏感//C and C++unsigned int i = -1; // ok//Cunsigned int i = {-1}; // ok//C++unsigned int i = {-1}; // err int转换到unsigned int需要收缩转换//Cfloat f = {3.14}; ...原创 2019-08-04 01:03:34 · 557 阅读 · 0 评论 -
C语言到C++的过渡
C++是由C演变过来的,两者必定是有联系的。这篇博客主要是过渡C,引出一些C++的基础概念,下面我会用C来模拟并借助汇编的方式来帮助大家更好的理解C++。typedef struct Base{ int a; int b;}Base;int getMax(Base base){ return base.a >= base.b ? base.a :...原创 2019-08-03 17:42:58 · 332 阅读 · 0 评论