| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> 面向对象程序设计的预习和复习 一(c++) -> 正文阅读 |
|
[C++知识库]面向对象程序设计的预习和复习 一(c++) |
类与对象定义类
private定义私有成员,外部不能调用。 public定义共有成员,外部直接调用,是内部与外部的接口。 protected定义保护成员,外部不能直接调用,但是派生类可以使用。 eg:
定义成员函数
成员函数之前一定要加上类名和::,以此来区分是哪个类的成员; 对象对象是类的实例
定义p1p2两个对象。 还可以定义对象的指针。
然后就可以对对象进行操作了
this指针系统在编译类时,自动创建this指针指向对象。 当成员的名字和参数名字相同时,还可以区分二者。 eg:
?构造函数构造函数没有返回值,不能加void,也没有return; 在声明对象时,构造函数自动执行。(据我的理解,这个函数的功能类似初始化) 构造函数应放在public中,因为其是在类外使用。 eg:
构造函数的重载 eg:
对于这个类,调用时如下
析构函数作用是释放对象所占的空间,生命周期结束时自动被调用。 函数名是类名前加上~. 必须放在public里面。 eg:
堆对象
用new和delete可以动态地分配或释放堆内存。
也可以用new建立对象(会自动调用构造函数),
利用delete可删除对象(会自动调用析构函数)
。
静态数据成员不管一个类的对象有多少个,其静态数据成员也只有一个,由这些对象所共享,可被任何一个对象访问。
友元和友元类允许友元和友元类访问类的私有成员和保护成员的辅助方法。 友元函数eg:
友元类eg:
继承和派生类继承继承就是利用原有的类定义新的类。 基类和派生类通过继承,派生类拥有的基类原有的数据类型,还可以添加新的数据类型。 也就是当我们拥有一个定义好的类之后,可以对其进行拓展,添加新的成员,使其变成新的派生类。 单继承派生类只有一个直接基类
从基类继承全部数据成员和成员函数 由派生类定义时的继承方式来控制基类成员的访问方式。(重名覆盖) 添加新成员 基类中的私有成员和不可访问成员在派生类中不可访问。 eg:
函数重写:基类已经定义的成员函数,在派生类中重新定义。 此时,基类中该成员函数的其他重载函数被屏蔽,可以在派生类中通过using 类名::成员函数名 恢复。
多重继承派生类同时由多个直接基类
多重继承存在二义性: 多个基类有同名的成员。应使用限定名来访问基类的同名成员。
多个基类具有一个共同的基类(祖先类) eg: ?这时应将祖先类设置为虚基类
?赋值兼容规则
在公有继承的情况下,一个派生类的对象可以作为基类对象来使用。
派生类的对象可以赋值给基类对象。
派生类的对象可以赋值给基类的引用。
派生类对象的地址可以赋值给指向基类对象的指针变量。
?虚函数
C++语言通过虚函数实现运行时的多态性。
同样的消息(调用同名成员函数)被类的不
同对象接收时导致完全不同的行为。
虚函数可以在一个或多个派生类中被重复定义, 因此它属于函数重载的情况。但是,这种函数重
载与一般的函数重载是不同的。
虚函数在派生类中重新定义时必须与基类中的原型完全相同(函数名、参数个数、参数类型、参数顺序、返回值类型)。
eg:
纯虚函数
纯虚函数没有函数体。 抽象类
抽象类只能用作基类来派生新类,不能声明抽象类的对象,但可以声明抽象类的指针变
量和引用变量。抽象类中可以定义纯虚函数和普通函数。如果抽象类的派生类没有定义基类中的纯虚函数,则必须再将该函数声明为纯虚函数,那么此派生类也是一个抽象类。
|
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 3:17:06- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |