C++基础-补遗篇
文章平均质量分 80
ipmux
这个作者很懒,什么都没留下…
展开
-
C++基础篇--作用域和自定义命名空间
引子 为引出本文主题,先举个例子,以便后文对照理解:某学校一年招了3个叫李明的学生,为便于区分:1)按年龄排序分别称大、中、小李明;2)把他们分到不同班,这样各班内部就没有同名的李明,而学校范围内可用1班/2班李明区分;3)大李明加入绘画协会,中李明加入书法协会,小李明加入绘画和外语协会,于是绘画协会里还要用大小或班级区分两个李明。基本几点:1.谈到重名,需要指定具体集合范围。全校原创 2015-03-23 17:19:57 · 6716 阅读 · 0 评论 -
C++基础篇--this指针
1.C++篇—struct到class进化的第一步this指针很多程序员C语言基础不好,结果用了好多年C++,还是知其然而不知所以然,往往经不起别人一问”xx机制怎么实现的”?比如this指针就是C++的基础机制之一。this的来由设想我们是十几年前C++的设计者,从C的struct怎么进化到C++的class?struct里可以用函数指针作成员变量,并原创 2014-05-12 12:38:11 · 1092 阅读 · 0 评论 -
C++基础篇—函数重载与Extern C
问题引出 之前提到C存在命名冲突问题,新的C++专门为此引入了namespace机制加以改进(后文介绍),此外还有另一种机制: int add(int i, int j) { return i+i; } float add(float a, float b, floatc) { return a+b+c; } void main()原创 2015-02-27 18:23:00 · 3149 阅读 · 0 评论 -
C++基础篇--overload重载&override覆盖&overwrite隐藏
Overload、Override和Overwrite英文接近,比较容易混淆,再加上翻译五花八门,使用时张冠李戴,往往是今天清楚明天糊涂。这三个概念在前面章节已分别讨论,这里再集中比较,以作备忘:Overload(重载) 前面分析过C++函数重载是借助C++的name mangling机制,允许在同一作用域中出现多个同名不同参的函数,如:class Base{ in原创 2015-04-14 11:11:17 · 4161 阅读 · 1 评论 -
C++基础篇--成员函数同名隐藏(overwrite)
C++中成员函数间的各种关系比较复杂,之前介绍过重载和虚函数覆盖,今天再梳理另一种容易让人迷惑的机制--函数隐藏。先看两个例子:例1.成员函数public继承class Base{public: void fun1(int a){ cout << "Base::fun1(int a)" << endl; }};class Drv: public Bas原创 2015-04-13 15:18:15 · 5427 阅读 · 0 评论 -
C++基础篇--虚函数原理
虚函数算是C++最关键和核心的内容之一,是组件的基础。下面先列出一些相关名词,再围绕它们举例说明虚函数的本质实现原理。基础概念(英文部分来自C++编程思想) 1)绑定:Connectinga function call to a function body is called binding.(把函数调用和函数实现关联的过程) 2)早绑定:Whenbinding is pe原创 2015-04-03 17:14:51 · 1054 阅读 · 0 评论 -
C++基础篇--运算符重载
运算符重载没有多高深复杂,但牵扯到的相关概念和语法变化不少,如果这块基石不牢固,读复杂C++代码时就只有雾里看花的份。运算符重载由来 C/C++中所有运算符(+-*/等)默认只用于基本数据类型(int floatdouble等),而对自定义的struct/class通常不适用,如: typedef struct TIMETAG { int hou原创 2015-09-01 15:04:19 · 2053 阅读 · 0 评论