C/C++
那我就换个名字吧
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
简说C++中define与const的区别
依旧是由于腾讯的面试,我意识到自己的渣。。。面试官问我宏定义的define和const的区别,我只回答了宏定义是预编译,所以速度上比const更快一些,剩下的没回答什么。虽然我也知道define不仅可以定义数,还可以定义函数,但是当时确实没有往这个方向想,所以我想在这里总结一下,为以后的面试和开发做准备。 在说区别之前,有几点背景知识是我们需要掌握的。 (截图说话,侵删) 这是C语...原创 2019-03-20 21:50:35 · 548 阅读 · 0 评论 -
C++虚函数概念及使用(基础)
所谓基础不牢,地动山摇。当面试官问到我虚函数和虚析构函数的时候,我真的一点都记不起来了,于是胡说八道,出丑万分。今天就总结一下虚函数的一些内容吧。 依照我的习惯,我们先看几个问题: 什么是虚函数? 什么是多态性? 多态性是怎么实现的? 以上三个问题我完全搞混了,所以面试当场气氛很尬。接下来抱着解决问题的态度来复习一下这些知识点,希望以后能记住。 什么是虚函数? 在某基类中...原创 2019-03-25 14:53:38 · 6054 阅读 · 5 评论 -
C++重载与多态
问:函数重载和函数多态是什么关系? 答:重载包括多态吧,重载还有运算符重载。。。。。。。 于是,尴尬了。 这篇文章说一下重载与多态的区别。 其实,重载和多态无论从本质还是从表面上都是不同的。 重载overload:函数名相同,但是函数参数不同。调用时根据参数的不同决定调用哪一个函数; 多态:函数名相同,函数形参也相同。调用时根据函数类型是虚函数还是普通成员函数决定调用哪一个。 所...原创 2019-03-25 18:03:43 · 3742 阅读 · 1 评论 -
C++纯虚函数
一般来说,许多时候基类并不能确定函数的实现方法,只能确定函数的功能。但是函数调用的时候必须要用到该函数。这种情况下,C++提供了一种机制,成为纯虚函数,属于虚函数的一种,体现了面向对象的多态性。 #include <iostream> #define PI 3.14 using namespace std; class Calculate{ virtual double getP...原创 2019-03-25 18:31:38 · 2999 阅读 · 0 评论 -
简述虚析构函数与纯虚析构函数
基础知识: C++中,一个类在建成时,需要有构造函数初始化。即当一个类的对象在生成时,会先调用构造函数初始化,再执行接下来的其他函数。而在一个类的对象指针被释放的时候,会调用析构函数。即使析构函数不被声明,也会隐式调用析构函数。 那么,当一个派生类继承了一个基类,这时候调用析构函数,会发生什么呢? #include <iostream> using namespace std;...原创 2019-03-25 19:56:51 · 1774 阅读 · 1 评论 -
简述虚函数表
前段时间我在博客中简单地说了下C++的虚函数,所谓虚函数,就是C++实现多态性的方法。那么编译器是如何识别虚函数的呢?据百度百科描述,C++并未规定用何种方法实现虚函数,但是大部分编译器厂商都选择使用虚函数表这种方法,那到底什么是虚函数表??? 虚函数表,称为V-Table。虚函数表是一片连续的内存区域,每个内存单元存放着JMP指令地址。 看到这里,可能会比较懵逼,啥是内存单元,啥是JM...原创 2019-04-04 18:00:28 · 6581 阅读 · 5 评论 -
构造函数与拷贝构造函数
拷贝构造函数和构造函数不能分开说,他们都是初始化对象的一种方法。但是我们这里用构造函数辅助说明拷贝构造函数,主要说说拷贝构造函数的声明,用途和使用注意事项。 众所周知,构造函数是一个初始化类对象的函数,即使不显示调用,编译器也会隐式调用构造函数初始化类对象。同样的,拷贝构造函数是一种特殊的构造函数,目的也是初始化类对象,同样在不声明的情况下也会隐式调用该函数。而隐式调用拷贝构造函数的时候,我们称...原创 2019-04-03 09:07:15 · 9101 阅读 · 2 评论 -
深拷贝与浅拷贝
前面说到了拷贝构造函数,但是情况并未列举完。我怕文章太长就分开写,看的舒服。 有一种情况,那就是当构造函数中有指针操作,怎么办? #include <iostream> using namespace std; class A{ private: int *a; public: A(){ a = new int[100]; cout...原创 2019-04-03 09:08:28 · 903 阅读 · 5 评论
分享