SF
C_经典C_数据结构_现代C_现代C_多线程_C_内存管理_Linux网络编程
C_经典C_数据结构_现代C_现代C_多线程_C_内存管理_Linux网络编程
注册登录
关注博客
注册登录
主页
关于
RSS
【C++】 70_展望: 未来的学习之路
TianSong
2019-01-05
阅读 1 分钟
2.2k
本课程学习的是 "经典" C++ 语言 ”经典“ 指的是什么? C++ 98/03 标准在实际工程中的常用特性 大多数企业的产品开发中需要使用的 C++ 技能
【C++】 69_技巧: 自定义内存管理
TianSong
2019-01-05
阅读 9 分钟
1.4k
mutable 是为了突破 const 函数的限制而设计的 mutable 成员变量将永远处于可改变的状态 mutable 在实际的项目开发中被严谨滥用
【C++】 68_拾遗: 令人迷惑的写法
TianSong
2019-01-05
阅读 4 分钟
1.3k
历史上的原因 。。。 早期的 C++ 直接复用 class 关键字来定义模板 但是泛型编程针对的不只是类类型 class 关键字的复用使得代码出现二义性
【C++】 67_经典问题分析 五
TianSong
2019-01-04
阅读 4 分钟
1.4k
面试问题 一 编写程序判断一个变量是不是指针 指针的判别 拾遗 C++ 中仍然支持 C 语言中的可变函数参数 C++ 编译器的匹配调用优先级 重载函数 函数模板 变参函数 思路 将变量分为两类: 指针 VS 非指针 编写函数: 指针变量调用时返回 true 非指针变量调用时返回 false 函数模板与变参函数的化学反应 {代码...} 编程实验...
【C++】 66_C++ 中的类型识别
TianSong
2019-01-04
阅读 3 分钟
1.3k
类型识别 在面向对象中可能出现下面的情况 基类指针指向子类对象(赋值兼容性) 基类引用成为子类对象的别名(赋值兼容性) 静态类型 - 变量(对象)自身的类型【编译期可确定】 动态类型 - 指针(引用)所指向对象的实际类型【运行时才可确定】 {代码...} 基类指针是否可以强制类型转换为子类指针取决于动态类型! 问题...
【C++】 65_C++中的异常处理 (下)
TianSong
2019-01-04
阅读 9 分钟
1.5k
C++ 中的异常处理 catch 语句块中可以抛出异常 编程实验: catch 中抛出异常 {代码...} {代码...} 问题:为什么要在 catch 中重新抛出异常? catch 中捕获得异常可以被重新解释后抛出 工程开发中使用这样得方式统一异常类型 编程实验: 异常的重新解释 {代码...} {代码...} 异常的类型可以是自定义类型 对于类类型异常的...
【C++】 64_C++中的异常处理 (上)
TianSong
2019-01-04
阅读 3 分钟
1.5k
C++ 内置了异常处理的语法元素 try ... catch ... try 语句处理正常逻辑代码 catch 语句处理异常逻辑代码 try 语句中的异常由对应的 catch 语句处理
【C++】 63_C语言异常处理
TianSong
2019-01-03
阅读 3 分钟
1.5k
程序在运行过程中可能产生异常 异常( Exception ) 与 Bug 的区别 异常是程序运行时可预料的执行分支 Bug 是程序中的错误,是不被预期的运行方式
【C++】 62_单例类模板
TianSong
2019-01-03
阅读 3 分钟
2k
要控制类的对象数目,必须对外隐藏构造函数 思路: 将构造函数的访问属性设置为 private 定义 instance 并初始化为 NULL 当使用对象时,访问 instance 的值 空值: 创建对象,并用 instance 标记 非空值: 返回 instance 标记的对象
【C++】 61_智能指针类模板
TianSong
2019-01-03
阅读 5 分钟
1.6k
生命周期结束时,销毁指向的内存(防止内存泄漏) 不能指向堆数组,只能指向堆对象(变量) 一片堆空间只属于一个智能指针对象(防止内存多次释放) 多个智能指针对象不能指向同一片堆空间
【C++】 60_数组类模板
TianSong
2019-01-03
阅读 5 分钟
2.6k
预备知识 模板参数可以是数值型参数(非类型参数) {代码...} {代码...} 数值型模板参数的限制 变量不能作为模板参数 浮点数不能作为模板参数 类对象不能作为模板参数 ...... 本质:模板参数是在编译阶段被处理的单元,因此,在编译阶段必须准确无误的唯一确定。 有趣的面试题:用你觉得最高效的方法求 1 + 2 + 3 + ... ...
【C++】 59_类模板深度剖析
TianSong
2019-01-03
阅读 4 分钟
1.3k
多参数类模板 类模板可以定义任意多个不同的类型参数 {代码...} ==> {代码...} 类模板可以被特化 指定类模板的特定实现 部分类型参数必须显示指定 根据类型参数分开实现类模板 类模板的特化类型 部分特化 - 用特定规则约束类型参数 完全特化 - 完全显示指定类型参数 {代码...} 部分特化 ==> {代码...} 完全特化 ==...
【C++】 58_类模板的概念和意义
TianSong
2019-01-02
阅读 4 分钟
1.7k
C++ 中的类模板 以相同的方式处理不同的类型 在类声明前使用 template 进行标识 < typename T > 用于说明类中使用的泛指类型 T
【C++】 57_深入理解函数模板
TianSong
2019-01-02
阅读 5 分钟
1.4k
深入理解函数模板 编译器从函数模板通过具体类型产生不同的函数 编译器会对函数模板进行两次编译 对模板代码本身进行编译(语法检查等) 对参数替换后的代码进行编译(语法检查等)
【C++】 56_函数模板的概念和意义
TianSong
2019-01-02
阅读 3 分钟
1.4k
定义宏代码块 优点: 代码复用,适合所有的类型 缺点:编译器不知道宏的存在,缺少类型检查 定义函数 优点: 真正的函数调用,编译器对类型进行检查 缺点: 根据类型重复定义函数,无法代码复用
【C++】 55_经典问题分析 四
TianSong
2019-01-02
阅读 5 分钟
1.5k
new 关键字和 malloc 函数的区别new 关键字是 C++ 的一部分malloc 是 C 库提供的函数new 以具体类型为单位进行内存分配malloc 以字节为单位进行内存分配new 在申请内存空间时可进行初始化malloc 仅根据需要申请定量的内存空间
【C++】 54_被遗弃的多重继承 (下)
TianSong
2019-01-01
阅读 4 分钟
1.9k
多重继承问题 三 多重继承可能产生多个虚函数表 编程实验: 多重继承问题 三 {代码...} {代码...} {代码...} 类 BaseA 与 类 BaseB 定义的成员结构相同,那么生成的虚函数表结构也将相同; funcA() 与 funcB() 是虚函数,那么函数的调用将通过虚函数表指针完成; BaseB* pbe = (BaseB*)pa; ==> C 方式的强制类型转换...
【C++】 53_被遗弃的多重继承 (上)
TianSong
2019-01-01
阅读 5 分钟
2.2k
C++ 支持编写多重继承的代码 一个子类可以拥有多个父类 子类拥有所有父类的成员变量 子类继承所有父类的成员函数 子类对象可以当作任意父类对象使用
【C++】 52_C++中的抽象类和接口
TianSong
2019-01-01
阅读 2 分钟
3.4k
什么是抽象类? 面向对象中的抽象概念 在进行面向对象分析时,会发现一些抽象的概念! 图形的面积如何计算? 在现实中需要知道具体的图形类型才能求面积,所以对概念上的”图形“求面积是没有意义的! {代码...} Shape 只是一个概念上的类型,没有具体对象! 问: Shape 类有必要存在有答:有。现实世界中存在图形概念 面向...
【C++】 51_C++对象模型分析 (下)
TianSong
2018-12-31
阅读 8 分钟
1.4k
C++ 多态的实现原理 当类中声明虚函数时,编译器会在类中生成一个虚函数表 虚函数表是一个存储成员函数地址的数据结构 虚函数表由编译器自动生成与维护 virtual 成员函数被编译器放入虚函数表中 存在虚函数时,每个对象都有一个指向虚函数表的指针
【C++】 50_C++对象模型分析(上)
TianSong
2018-12-31
阅读 4 分钟
1.5k
class 是一种特殊的 struct 在内存中 class 依旧可以看作变量的集合 class 与 struct 遵循相同的内存对齐规则 class 中的成员函数与成员变量是分开存放的 每个对象有独立的成员变量【栈空间、堆空间、全局数据区】 所有对象共享类的成员函数【代码段】
【C++】 49_多态的概念和意义
TianSong
2018-12-31
阅读 4 分钟
2.4k
面向对象中期望的行为 根据实际的对象类型判断如何调用重写函数 父类指针( 引用 )指向 父类对象则调用父类中定义的函数 子类对象则调用子类中定义的函数
【C++】 48_同名覆盖引发的问题
TianSong
2018-12-30
阅读 3 分钟
3.4k
子类对象可以当作父类对象使用(兼容性) 子类对象可以直接赋值给父类对象 子类对象可以直接初始化父类对象 父类指针可以直接指向子类对象 父类引用可以直接引用子类对象
【C++】 47_父子间的冲突
TianSong
2018-12-30
阅读 4 分钟
1.8k
子类可以定义父类中的同名成员【位于不同作用域中】 子类中的成员将隐藏父类中的同名成员 父类中的同名成员依然存在于子类中 通过作用域分边符(::)访问父类中的同名成员
【C++】 46_继承中的构造与析构
TianSong
2018-12-30
阅读 4 分钟
1.3k
子类对象可以定义构造函数 子类构造函数 必须对继承而来的成员进行初始化 直接通过初始化列表或者赋值的方式进行初始化 调用父类构造函数进行初始化
【C++】 45_不同的继承方式
TianSong
2018-12-30
阅读 5 分钟
1.2k
C++ 中支持三种不同的继承方式 public 继承 父类成员在子类中保持原有的访问级别 private 继承 父类成员在子类中变为私有继承 protected 继承 父类中的公有成员变为保护成员,其它成员保持不变
【C++】 44_继承中的访问级别
TianSong
2018-12-29
阅读 4 分钟
1.4k
值得思考的问题 子类是否可以直接访问父类的私有成员呢? 思考过程 根据面向对象理论: 根据C++ 语法: 编程实验: 继承中的访问级别 {代码...} {代码...} 继承中的访问级别 面向对象中的访问级别不只是 public 和 private 可以定义 protected 访问级别 关键字 protected 的意义 修饰的成员不能被外界直接访问 修饰的成员...
【C++】 43_继承的概念和意义
TianSong
2018-12-29
阅读 5 分钟
1.5k
思考:类之间是否存在直接的关联关系呢? 生活中的例子 组合关系: 整体与部分的关系 实例分析: 组合关系的描述 {代码...} {代码...} 类之间的组合关系 组合关系的特点 将其它类的对象最为当前类的成员使用 当前类的对象与成员对象的生命期相同 成员对象在用法上与普通对象完全一致 生活中的例子 继承关系: 父子关系 ...
【C++】 42_类型转换函数 (下)
TianSong
2018-12-29
阅读 3 分钟
1.8k
问题:类类型是否能够类型转换到普通类型呢? {代码...} {代码...} 类型转换函数 C++ 类可以定义类型转换函数 类型转换函数用于将类对象转换为其它类型 语法规则: {代码...} 编程实验: 类型转换函数初探 {代码...} {代码...} 编译器的行为 编译器会尽力尝试让源码通过编译 t 这个对象为 Test 类型,怎么可能用于初始化...
【C++】 41_类型转换函数 (上)
TianSong
2018-12-29
阅读 4 分钟
1.2k
分析 1:cout << "ui + i = " << ui + i << endl;if( (ui + i) > 0 ) {}
上一页
1
…
More
5
6
7
(current)
8
9
…
More
下一页
上一页
7
(current)
下一页