博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《深入浅出MFC》第二章 C++的重要性质
阅读量:4322 次
发布时间:2019-06-06

本文共 1477 字,大约阅读时间需要 4 分钟。

把对象的属性和行为归纳整理,组织成一个类别称为类。类包括成员变量和成员函数,分别对应对象的属性和行为。

把数据声明为private,只提供特定的接口供外界访问,这称为面向对象的封装。

派生类与基类是IsKindOf的关系。

每个对象都有各自的成员变量,但成员函数却是对象共享的,成员函数的参数列表中默认包含隐藏的this指针,成员函数通过该指针处理对象各自的数据。成员函数中对数据的访问会自动使用this指针进行访问。

当通过指针调用成员函数时(非虚拟函数),所调用成员函数的版本由指针的类型而定而与指针所指的对象类型无关。

把操作提升到抽象中定义是为了实现一般化的程序设计,即它可以把现在的与未来的情况通通纳入考虑。我们需要通过一般化的对象来处理对象实际类型的情况。这种性质就是多态,需要虚函数来完成。

程序代码完全一样,执行结果却完全不同,这就是虚函数的妙用。如果预计在派生类中重新定义某个成员函数,则在基类中将该函数定义为虚函数。

相同的指令却调用了不同的函数,这种性质就是多态。对虚函数的调用无法在编译时判断调用的具体函数,只有到运行时才能判断,这称为动态绑定或后期绑定,对于非虚函数的调用,在编译时就转换为一个固定地址的调用,这称为前期绑定或静态绑定。

如果基类中某个虚函数什么也不做,并且根本不应该被调用,只是提供一个多态的约定,这时把虚函数定义成纯虚函数,在定义后面添加=0。拥有纯虚函数的类是一种抽象类,抽象类不能被实例化。如果派生类没有重写基类中的纯虚函数,则该派生类也是抽象类。抽象类不能产生出对象实例,但是可以拥有指向抽象类的指针。

 动态绑定通过虚函数表实现,每个对象都包含一个指向虚函数表的指针。

当使用强制类型转换把派生类对象转换成基类对象时,会调用基类的拷贝构造函数并只拷贝派生类对象中基类包含的成员。

static成员变量不属于对象的一部分,而属于类的一部分。不要在构造函数中或头文件中设定静态成员的初始值,可以在其他任何位置设定初始值,设定初始值时不受访问权限的限定,实际上静态成员是在设定初始值的时候才被定义出来,设定初始值的语法double Class::member=2。

如果static成员变量为privete,可以通过static的成员函数来存取static成员变量。static成员函数不能访问non-static的成员变量,因此static成员函数也不隐藏包含指向对象的this指针。

四种不同的对象生存方式,全局对象(全局对象一定是静态对象),局部静态对象,局部对象(在堆栈中分配内存)以及通过new产生的局部对象(在堆中产生对象)。

MFC支持动态创建,即反序列化。

C++支持异常处理,通过异常处理可以实现从异常处直接跳到异常处理代码。通过try、catch、throw实现异常处理逻辑。

C++支持function的模板,也支持class的模板,模板可以使数据类型也可以像参数一样传递,因此可以实现一般性的算法和数据类型的实现部分区分开。在Template Function和Template Class中类型参数一定要满足在function中和class中参与的运算符,否则会出现未知的错误。

直到程序使用template function或template class时编译器才能为其生成目标代码,如果在多个文件中使用了同一个Template并且数据类型也相同,在链接时将删除相同的生成类型。

转载于:https://www.cnblogs.com/jefflee/p/6359856.html

你可能感兴趣的文章
7个杀手级的开源监测工具
查看>>
软件架构学习小结
查看>>
C语言实现UrlEncode编码/UrlDecode解码
查看>>
返回用户提交的图像工具类
查看>>
树链剖分 BZOJ3589 动态树
查看>>
挑战程序设计竞赛 P131 区间DP
查看>>
【例9.9】最长公共子序列
查看>>
NSFileManager打印目录下的文件的函数
查看>>
Selenium自动化-调用Mysql数据库
查看>>
项目一
查看>>
[转载]AAF灵便应用框架简介系列(6):休息一下,泛谈面向对象 Why OO+多层结构?...
查看>>
android EditView ime
查看>>
javascript 学习随笔7
查看>>
<P>标签小细节
查看>>
Linux 命令 - netstat
查看>>
mac 关闭&&显示隐藏文件命令
查看>>
JavaScript 循环绑定之变量污染
查看>>
poj 1038 Bugs Integrated, Inc. 三进制状态压缩 DFS 滚动数组
查看>>
zoj 1654 Place the Rebots 最大独立集转换成二分图最大独立边(最大匹配)
查看>>
Wordpress解析系列之PHP编写hook钩子原理简单实例
查看>>