随笔分类 - C/C++
学生时代的基础
C++之class再分析
摘要:#一个空类,编辑器会实现几个默认函数 (有的说法是4个,有的说法是6个) 一个空类,会有一个默认占位大小,sizeof的结果是1 sizeof(A) > 0 是因为标准规定完整对象的大小为正数。 四个默认函数 构造函数 析构函数 拷贝构造函数 赋值运算符重载函数 下面这两个没有被提及 取地址运算符重
阅读全文
C++之函数模板
摘要:#函数模板 所谓函数模板,实际上是建立一个通用函数,它所用到的数据的类型(包括返回值类型、形参类型、局部变量类型)可以不具体指定,而是用一个虚拟的类型来代替(实际上是用一个标识符来占位),等发生函数调用时再根据传入的实参来逆推出真正的类型。这个通用函数就称为函数模板(Function Templat
阅读全文
C++之运算符重载
摘要:函数重载(Function Overloading)可以让一个函数名有多种功能,在不同情况下进行不同的操作。 运算符重载(Operator Overloading)也是一个道理,同一个运算符可以有不同的功能。 #运算符重载格式 返回值类型 operator 运算符名称 (形参表列){ //TODO:
阅读全文
C++之虚函数和虚继承(知乎匿名大神纯文字版)
摘要:作者:匿名用户链接:https://www.zhihu.com/question/24858417/answer/495923089来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 在msvc环境下,虚函数和虚继承是分开的。其实非常简单,以下分类讨论。 1.B有虚函数,
阅读全文
C++之多态和虚函数
摘要:#多态 在编程语言和类型论中,多态(英语:polymorphism)指为不同数据类型的实体提供统一的接口。 多态类型(英语:polymorphic type)可以将自身所支持的操作套用到其它类型的值上。(百度百科) 换一种说法:基类指针可以按照基类的方式来做事,也可以按照派生类的方式来做事,它有多种
阅读全文
C++之继承和派生
摘要:#继承 继承和派生是相对的,继承指的是子类(派生类)继承父类(基类)。派生指的是父类(基类)传承自己的 "家业"给子类(派生类) 三种方式(指的是权限public,protected,private)对继承自基类内容的权限只能小于等于继承方式 覆盖问题,子类同名函数或者变量会覆盖父类,不存在重载方式
阅读全文
C++之类和对象
摘要:#class class People { public: void Say();//直接在类内实现也是可以的,反而更快(直接变内联) People(string name, int age, int money):m_Money(money),m_Age(age),m_Name(name) {//
阅读全文
C++之前言回忆
摘要:#C我学习的第一门面向对象的语言 C是在C语言的基础上发展出来的,早起的C甚至没有自己的编译器。众所周知,C语言是面向过程的,随着项目或者业务的复杂,C语言写起来逐渐变得复杂和耗时,这时C带着面向对象的特性出现了。面向对象对大型项目的开发无疑带来了巨大便利,随着C的流行,C开始拥有了自己独立的库和标
阅读全文
C语言之结构体、枚举、共用体
摘要:#结构体 结构体是一种集合,它里面包含了多个变量或数组,它们的类型可以相同,也可以不同,每个这样的变量或数组都称为结构体的成员(Member) struct stu{ char *name; //姓名 int num; //学号 int age; //年龄 char group; //所在学习小组
阅读全文
C语言之指针
摘要:#没有内存就没有指针 指针,以我的理解就是打开某块内存的钥匙。其他的操作都是围绕这个特性进行的,先学习一下CPU获取数据的工作方式 CPU 只能通过地址来取得内存中的代码和数据,程序在执行过程中会告知 CPU 要执行的代码以及要读写的数据的地址。如果程序不小心出错,或者开发者有意为之,在 CPU 要
阅读全文
C语言之数组
摘要:#数组的内存是连续的 这一点其实就是为什么数组比链表访问更快了。链表往往是在内存中随机分布的,通过指针索引。 Cpu在计算时,会有一部分数据缓存在cache中,数组由于连续,损耗可预计(能不能装的下),就别写进缓存中 下次寻址的时候就快了。链表呢,随机存储就不是很方便载入缓存了 另外,C语言只有静态
阅读全文
C语言之输入输出
摘要:#Printf输出 #Scanf输入 ##输入单个字符:getchar() ##输入一个字符之后立马获取(有回显):getche() ##输入一个字符之后立马获取(无回显):getch() ##输入一个字符串:gets(),这个能包含空格,scanf遇到空格就停止了 #缓冲区 有缓冲区用户才能继续输
阅读全文
C语言之整形表示
摘要:#原码, 反码, 补码 ##大前提(8Bit情况下,最高位代表符号位) ##小前提:设计思路符合时钟计数和数学上模的概念 原码:最直观的表示 [+1] = [0000 0001]原 [-1] = [1000 0001]原 缺点:负数无法直接让计算机计算,结果不对 反码:(解决负数问题) 正数的反码是
阅读全文
C语言之数据类型
摘要:#开山鼻祖 Unix 和C语言的开发者是同一人,名字叫丹尼斯·里奇(Dennis MacAlistair Ritchie)。 #数据类型(Data Type) char 字符型 字长1 short 短整型 字长2 int 整形 字长4 long 长整型 字长4 float 单精度浮点型 字长4 do
阅读全文
浙公网安备 33010602011771号