C/CPP
一些总结和笔记
GY-赵
这个作者很懒,什么都没留下…
展开
-
C++中union报错
#include<iostream> using namespace std; union U1 { int a; float b; string str; }; int main() { U1 u1; u1.str = 'str'; cout << u1.str << endl; } 原因:string为一个类,拥有自己的构造函数和析构函数,union中成员公用一段地址,在进行初始化的时候不同成员引用不同的构造函数,但它并不知道你要用哪个,所以成员原创 2021-01-14 16:31:16 · 616 阅读 · 0 评论 -
面向对象与面向过程的区别
面向过程与面向对象 前言: 如果你很想搞明白面向对象是什么,面向过程是什么,或者说二者之间的区别是什么,那么就花费一点时间来研读一下这篇博客,你一定会有很大的收获的! 一、面向对象与面向过程的区别 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 可以拿生活中的实例来理解面向过程与面向对象,例如五子棋,面向过程的设计思路就转载 2020-08-19 23:21:27 · 286 阅读 · 0 评论 -
C++抽象类、虚函数、纯虚函数
C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。 如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类。纯虚函数是通过在声明中使用 “= 0” 来指定的 如 virtual int fun()=0; 定义一个函数为虚函数,不代表函数为不被实现的函数。 定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。 定义一个函数...翻译 2020-02-01 16:32:25 · 183 阅读 · 0 评论 -
mutable关键字
mutable可以使const类型的变量被修改,即在使用const修饰的函数中,一般是为了不被其他函数修改,在某些特殊情况下,其中的某几个变量需要被修改且与类没有太大关系,有人说可以去掉const不就好了,这样的话其他变量也失去了const的保护,因此这种情况下,mutable关键字就起作用了,所有被mutable修饰的变量都可以被其他函数修改。 如下例子,统计add函数调用的次数。如果num变...原创 2020-01-04 19:37:12 · 168 阅读 · 0 评论 -
构造函数
构造函数用来初始化对象 (1) 在类对象进入其作用域时调用构造函数。 (2)构造函数没有返回值,因此也不需要在定义构造函数时声明类型,这是 它和一般函数的一个重要的不同之点。 (3) 构造函数不需用户调用,也不能被用户调用。 (4) 在构造函数的函数体中不仅可以对数据成员赋初值,而且可以包含其他 语句。 但是一般不提倡在构造函数中加入与初始化无关的内容,以保持程序的清 晰。 (5) 如果用户自己没...原创 2020-01-04 17:04:02 · 170 阅读 · 0 评论 -
函数模板与类模板
模板就是重载函数的升级版,当有大量功能相似,类型不同,或者参数不同的功能函数要实现时,我们一般使用重载函数来实现,这要求我们去写大量函数,即不容易管理又显得凌乱,模板出现就是为了解决这个问题,通过定义一个泛型的类型,在编译的时候由编译器自动根据内容选择合适类型,就可以将上述大量函数简化为一个模板函数或者类模板。 template template class与typename作用一致,class先...原创 2020-01-04 15:57:38 · 153 阅读 · 1 评论 -
C++虚继承(virtual)
C++虚继承(virtual) 虚继承是为了解决同一个基类A被多个派生类(如B 、C)继承导致每个派生类中都保存有一份基类成员函数或者数据的副本,浪费了大量存储空间,也容易导致重命名的问题,还容易编译出错,如下所示 class a { protected: int ma; private: int mm; }; ---------------------------- class ...原创 2019-12-31 18:50:22 · 1030 阅读 · 0 评论 -
this指针总结
#this指针 由来,刚开始C++基于C的基础扩展,编译过程是把C++转化为C语言再通过C语言编译器编译,这样一种转化过程,class转化为结构体,成员函数转化为独立的函数体,那么如何实现调用函数时,是针对目标对象的呢?这种情况下,this指针诞生了,即通过在构造独立函数时,参数项里添加一个目标对象的结构体对应的this指针,保证调用时,与对象一致,很多函数里边的this指针就是这个作用。 ...翻译 2019-12-31 17:35:48 · 150 阅读 · 0 评论