内容:

(1)只能用成员形式重载的运算符
(2)new/delete操作符的重载
(3)封装和继承的初识
(4)继承的特性
(5)子类及其函数的特性
(6)多重继承和虚继承

1.只能用成员形式重载的运算符
(1)[] 下标操作符
(2)() 函数操作符
(3)* -> 间接操作符

2.new/delete操作符的重载

注意:
如果需要在调用构造函数之前做一些初始化工作/在调用析构函数之后做一些善后工作,则可以通过new/delete运算符重载的函数来实现

3.封装和继承的初识
3.1 概念
(1)封装
使用访问控制符对类型中的属性和行为进行访问限制的机制
public protected private
(2)继承
表达类型之间共性和特性的依存关系的一种语言机制

如:
学生类:
属性:姓名 年龄 学号
行为:吃饭 学习
教师类:
属性:姓名 年龄 职称
行为:吃饭 授课

将学生类和教师类的共性提取出来,组成人类:
属性:姓名 年龄
行为:吃饭

剩下的是学生类和教师类的特性:
学生类:
属性:学号
行为:学习
教师类:
属性:职称
行为:授课

于是发现:
人类:(姓名,年龄,吃饭)
/ \
(学号,学习)学生类 教师类(职称,授课)

人类:父类/基类
学生类/教师类:子类/派生类

3.2 继承的语法格式
class 子类名 : 继承方式 父类名1,继承方式2 父类名2,...
{
子类类型的定义;
};

继承方式:
public: 公有方式继承
protected:保护方式继承
private: 私有方式继承

练习:
vi 07inherit.cpp文件,自定义Person类和Teacher类,提供构造函数和行为

4.继承的特性
(1)一个子类类型的对象在任何时候都可以看做该类的基类类型的对象
(2)一个基类类型的对象如果作为子类类型的对象被访问,有可能引发非法内存访问错误
(3)在子类中可以访问基类中的公有和保护成员,但是不可以访问私有成员
(4)在子类中可以定义和基类中同名的标示符,子类隐藏父类(名字隐藏)

5.继承方式和访问控制符

5.1 访问控制符

访控符 访控属性 本类 子类 类外 友元
---------------------------------
public 公有的 ok ok ok ok
protected 保护的 ok ok no ok
private 私有的 ok no no ok

5.2 继承方式的特性
基类中 公有子类 保护子类 私有子类
----------------------------------
公有的 公有的 保护的 私有的
保护的 保护的 保护的 私有的
私有的 私有的 私有的 私有的

注意:
一般采用公有方式继承,保护和私有的继承方式很少使用

如:
class A
{
public:
void print(void){....}
};
class B : private A
{
public:
void show(void)
{
print();
...
}
};

class C
{
print();
};

6.子类中的构造函数和析构函数
(1)在子类的构造函数中可以显式地构造其基类部分("基类类名(实参)"),否则系统会试图以无参的形式去构造基类子对象
(2)子类中的析构函数会自动地调用父类中的析构函数从而释放基类子对象,而父类中析构函数不会自动调用子类的析构函数
(3)delete一个指向子类对象的父类指针时,被调用的仅仅是父类中的析构函数,而该析构函数不会自动调用子类中的析构,从而造成内存泄露,可以通过使用虚析构解决此问题(明天讲到)

C++_基础_运算符重载2的更多相关文章

  1. C++_基础_运算符重载

    内容: (1)输入输出运算符重载 (2)友元类和友元函数 (3)双目运算符重载 (4)单目运算符重载 (5)不能被重载的运算符 (6)只能定义为成员形式的运算符 1.输入输出运算符重载如: int n ...

  2. 网易云课堂_C++开发入门到精通_章节4:运算符重载

    课时23运算符重载 运算符重载 重载赋值运算符 Person& Person::operator=(const Person& other) { //检查自赋值 if (this == ...

  3. C++学习6-面向对象编程基础(运算符重载、类的派生与继承、命名空间)

    运算符重载 重载的运算符是具有特殊名字的函数:它们的名字由关键字operator和其后要定义的运算符号共同组成.重载的运算符是遵循函数重载的选择原则,根据不同类型或不同参数来选择不同的重载运算符. 运 ...

  4. C++_基础_类和对象3

    内容: (1)析构函数 (2)拷贝构造和拷贝赋值 (3)静态成员 (4)成员指针 (5)输入输出运算符重载 1.析构函数 当一个对象被创建时,自动调用构造函数进行初始化 当一个对象被销毁时,自动调用析 ...

  5. C++语言基础(17)-运算符重载

    运算符重载的格式为: 返回值类型 operator 运算符名称 (形参表列){ //TODO: } 一.在类里面实例运行符重载 #include <iostream> using name ...

  6. 面向对象程序设计-C++_课时30运算符重载——基本规则_课时31运算符重载——原型_课时32运算符重载——赋值_课时33运算符重载——类型转换

    区分初始化,赋值 #include <iostream> using namespace std; class Fi { public: Fi() {}//1构造函数 }; class F ...

  7. C++_基础_继承、多态

    内容: (1)子类中的拷贝构造和拷贝赋值 (2)多继承和虚继承 (3)多态的初识 (4)虚析构的特性和使用 (5)多态的底层实现 (6)纯虚函数.抽象类的概念 1.子类中的拷贝构造和拷贝赋值 子类中的 ...

  8. C++_基础_类和对象2

    内容: (1)构造函数 (2)初始化列表及其必要性 (3)支持自定义类型转换的构造函数 (4)this指针 (5)const对象和成员函数 (6)析构函数 1.构造函数1.1 格式: class 类名 ...

  9. java工程师_基础_阶段一_HTML笔记篇

    一.了解HTML语言 html:超文本标记语言. 二.HTML整体结构<html> <head> </head> <body> </body> ...

随机推荐

  1. 剖析magento中关于Email模板的设置

    public function send()    {        $emailTemplate = Mage::getModel('core/email_template');        // ...

  2. [Regionals 2012 :: Asia - Tokyo ]

    链接: https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=56 ...

  3. Freedur为什么会免费?

    难道没人看看他们的官方站点吗? Freedur倒闭了...... 一个中国人,Chris Lee,作为Freedur的会计师,窃取了公司的银行帐号.并将Freedur的官方站点指向自己的空间.而且声称 ...

  4. 获取xml文件

    <?xml version="1.0" encoding="utf-8" ?><ArrayOfSystemRool xmlns:xsi=&qu ...

  5. c++中,保证头文件只被编译一次,避免多重包含的方法

    保证头文件只被编译一次 #pragma once这是一个比较常用的C/C++杂注,只要在头文件的最开始加入这条杂注,就能够保证头文件只被编译一次. #pragma once是编译器相关的,有的编译器支 ...

  6. 02151216--Ajax

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. Qt 控件

    一.布局管理器 QHBoxLayout 水平布局 QVBoxLayout 垂直布局 QGridLayout 格点布局 QFormLayout 关联布局 QSplitter 分裂器 Spacers 间隔 ...

  8. leetcode Merge Two Sorted Lists python

    # Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = ...

  9. Java引用数据类型

    值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值.引用传递:也称为传地址.方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应 ...

  10. 走进C标准库(1)——assert.h,ctype.h

    默默觉得原来的阅读笔记的名字太土了,改了个名字,叫做走进C标准库. 自己就是菜鸟一只,第一次具体看C标准库,文章参杂了对<the standard C library>的阅读和对源码的一些 ...