随笔分类 -  C++面向对象程序设计基础

摘要:虚函数具有动态联编性,在类族中有强大功能;友元函数具有跨类访问的功能,本质却是一种对封装的破坏。 先看这样一个例子: #include<iostream> using namespace std; class A; class B { private: int x; void print() { c 阅读全文
posted @ 2020-03-06 16:53 王陸 阅读(989) 评论(0) 推荐(0) 编辑
摘要:收拾电脑硬盘时找到了源代码,现在上传github上:https://github.com/wkfvawl/elevator 一、背景 随着经济的不断发展,越来越多的摩天大楼拔地而起,而电梯作为高层建筑物种的运送人员货物的设备也越来越被广泛使用。电梯的运行是电梯与大楼的各个楼层之间的使用者进行交互的一 阅读全文
posted @ 2019-08-19 19:45 王陸 阅读(8679) 评论(7) 推荐(10) 编辑
摘要:C++词汇表 A abort() 特殊函数 如果一个函数抛出异常,但在通往异常函数的调用链中找不到与之匹配的catch,则该程序通常以此函数调用终止 abstract base class 抽象基类 abstract class 抽象类 无实例对象的类,其唯一用途是被继承 abstract data 阅读全文
posted @ 2019-08-06 21:51 王陸 阅读(3105) 评论(0) 推荐(0) 编辑
摘要:这是我在准备C++考试时整理的提纲,如果是通过搜索引擎搜索到这篇博客的师弟师妹,建议还是先参照PPT和课本,这个大纲也不是很准确,自己总结会更有收获,多去理解含义,不要死记硬背,否则遇到概念辨析题会特别吃亏,如果觉得有收获点赞关注,祝考试顺利。 1.叙述面向对象编程的特点是什么?(提示:封装、继承、 阅读全文
posted @ 2019-07-04 21:02 王陸 阅读(6543) 评论(0) 推荐(7) 编辑
摘要:1. 采用面向对象的方式编写一个通迅录管理程序,通迅录中的信息包括:姓名,公司,联系电话,邮编。要求的操作有:添加一个联系人,列表显示所有联系人。先给出类定义,然后给出类实现。(提示:可以设计二个类,一个通迅录条目类CommEntry,一个通讯录类Commus) /*Employee 和Manage 阅读全文
posted @ 2019-06-24 21:35 王陸 阅读(1108) 评论(0) 推荐(1) 编辑
摘要:什么是UML? 统一建模语言(UML) 维基百科给出如下定义: UML即统一建模语言(Unified Modeling Language),它是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模 阅读全文
posted @ 2019-06-23 21:00 王陸 阅读(11600) 评论(0) 推荐(3) 编辑
摘要:这里针对C++中const的一些一般用法进行一下简单的总结 一、定义常量 常量不可修改 与#define宏定义常量的区别:(1)const常量具有类型,编译器可以进行安全检查;#define宏定义没有数据类型,只是简单的字符串替换,不能进行安全检查。 (2)有些集成化的调试工具能对const常量进行 阅读全文
posted @ 2019-06-04 14:55 王陸 阅读(2133) 评论(0) 推荐(0) 编辑
摘要:构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。例如: 上面的例子中两个构造函数的效果是一样的。使用初始化列表的构造函数是显示地初始化类的成员;而没有使用初始化列表的构造函数是对类的成员赋值,并没有显示地初始化。 初始化列表的构造函数和内 阅读全文
posted @ 2019-05-21 20:38 王陸 阅读(17926) 评论(0) 推荐(8) 编辑
摘要:运行时动态类型的识别其实应该是多态方面的知识,这里我直接拿来单独成章。 dynamic_cast和static_cast 1.static_cast用法如下: 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要可用于以下几种情况: (1)用于类层次 阅读全文
posted @ 2019-05-20 20:01 王陸 阅读(1382) 评论(0) 推荐(0) 编辑
摘要:转载自https://blog.csdn.net/cbNotes/article/details/38900799 1.我们通常从教科书上看到这样的说明:delete 释放new分配的单个对象指针指向的内存delete[] 释放new分配的对象数组指针指向的内存那么,按照教科书的理解,我们看下下面的 阅读全文
posted @ 2019-05-10 21:30 王陸 阅读(28489) 评论(1) 推荐(15) 编辑
摘要:静态static 静态成员的提出是为了解决数据共享的问题。实现共享有许多方法,如:设置全局性的变量或对象是一种方法。但是,全局变量或对象是有局限性的。 在全局变量前,加上关键字static该变量就被定义成为了一个静态全局变量。 该变量只有在本源文件中可见,严格讲应该为定义之处开始到本文件结束,静态全 阅读全文
posted @ 2019-05-08 20:47 王陸 阅读(18991) 评论(2) 推荐(2) 编辑
摘要:异常处理这部分内容其实并不属于OPP的技术,仅仅是C++对程序出错的处理。 异常处理 程序中常见的错误有两大类:语法错误和运行错误。在编译时,编译系统能发现程序中的语法错误。在设计程序时,应当事先分析程序运行时可能出现的各种意外的情况,并且分别制订出相应的处理方法,这就是程序的异常处理的任务。在运行 阅读全文
posted @ 2019-05-05 20:45 王陸 阅读(3797) 评论(0) 推荐(2) 编辑
摘要:纯虚函数和定义 在许多情况下,在基类中不能对虚函数给出有意义有实现,而把它说明为纯虚函数。纯虚函数是没有函数体的虚函数,它的实现留给该基类的派生类去做,这就是纯虚函数的作用。 class A { private: int a; public: virtual void Print( ) = 0 ; 阅读全文
posted @ 2019-05-02 16:32 王陸 阅读(2562) 评论(0) 推荐(1) 编辑
摘要:名字重载Name overloading 如果顶层函数有不同的签名,则函数名可以相同。 如果同一类中的函数有不同的签名,则函数名可以相同。 C++中允许在相同的作用域内以相同的名字定义几个不同实现的函数,可以是成员函数,也可以是非成员函数。但是,定义这种重载函数时要求函数的参数或者至少有一个类型不同 阅读全文
posted @ 2019-05-02 15:06 王陸 阅读(648) 评论(0) 推荐(0) 编辑
摘要:为什么使用友元? 例如:求两点之间的距离 解决方法:设计一个函数计算两点间的距离,解决方案普通函数,成员函数和类的组合都不好,最好采用友元关系。 友元 面向对象程序设计主张程序的封装、数据的隐藏,不过任何事物都不是绝对的,友元打破了这种封装和隐藏。 友元关系提供了一种共享机制,实现不同类或对象的成员 阅读全文
posted @ 2019-05-02 11:38 王陸 阅读(374) 评论(0) 推荐(0) 编辑
摘要:我们知道C++的类应当是先定义,然后使用。但在处理相对复杂的问题、考虑类的组合时,很可能遇到俩个类相互引用的情况,这种情况称为循环依赖。 例如: 这里类A的公有成员函数f的形参是类B的对象,同时类B的公有成员函数g也以类A的对象为形参。由于在使用一个类之前,必须首先定义该类,因此无论将哪一个类的定义 阅读全文
posted @ 2019-05-02 10:14 王陸 阅读(8514) 评论(0) 推荐(0) 编辑
摘要:什么是多态? 多态(polymorphism)一词最初来源于希腊语polumorphos,含义是一种物质的多种形态。 在专业术语中,多态是一种运行时绑定机制(run-time binding) ,通过这种机制,实现将函数名绑定到函数具体实现代码的目的。 多态的目的 根据赋值兼容,用基类类型的指针指向 阅读全文
posted @ 2019-04-24 15:23 王陸 阅读(1690) 评论(0) 推荐(1) 编辑
摘要:一、多重继承定义 在现实生活中,一些新事物往往会拥有两个或者两个以上事物的属性,为了解决这个问题,C++引入了多重继承的概念,C++允许为一个派生类指定多个基类,这样的继承结构被称做多重继承。(派生类有两个或两个以上的直接基类)当一个派生类要使用多重继承的时候,必须在派生类名和冒号之后列出所有基类的 阅读全文
posted @ 2019-04-23 15:09 王陸 阅读(3919) 评论(0) 推荐(0) 编辑
摘要:几个问题 一个类的各数据成员的构造顺序? 按他们在类定义中出现的先后顺序:先定义者先构造。类的对象成员的构造函数与类自身的构造函数的执行顺序? 先执行对象成员的构造函数,再执行类自身的构造函数。构造顺序与析构顺序的关系?二者顺序相反:先构造者,后析构。构造函数和析构函数用来创建和释放该类的对象,当这 阅读全文
posted @ 2019-04-19 19:44 王陸 阅读(4842) 评论(0) 推荐(0) 编辑
摘要:派生类成员的访问属性: C++继承方式总共分为以下几种:public、private、protected三种(它们直接影响到派生类的成员、及其对象对基类成员访问的规则)。(1)public(公有继承):继承时保持基类中各成员属性不变,并且基类中private成员被隐藏。派生类的成员只能访问基类中的p 阅读全文
posted @ 2019-04-19 16:59 王陸 阅读(3062) 评论(0) 推荐(1) 编辑