【C++面向对象程序设计知识点】
1. 面向对象编程基础:
- C++是一种支持面向对象编程(OOP)的编程语言,它允许程序员使用类、对象、继承、封装、多态等概念来设计和实现软件。
- 类是面向对象编程的核心,它定义了一组属性(数据成员)和行为(成员函数)。
- 对象是类的实例,它具有类定义的属性和行为。
2. 成员访问权限:
- 成员可以有public、private和protected三种访问权限。
- public成员可以在类的任何地方访问。
- private成员只能在类内部访问,对外部是隐藏的。
- protected成员对类的成员函数和派生类可见。
3. 构造函数与析构函数:
- 构造函数是用于初始化类对象的特殊函数,其名称与类名相同,没有返回类型。
- 析构函数是对象生命周期结束时自动调用的函数,负责清理资源,其名称为类名前加上波浪线(~)。
4. 指针与引用:
- 指针是一个变量,存储另一个变量的内存地址,可以用来间接访问该变量。
- 引用是变量的别名,一旦初始化后,引用始终指向同一变量。
5. 运算符重载:
- 运算符重载允许为类自定义已有的运算符,但不能改变其原始含义或操作数数量、结合性或优先级。
6. 纯虚函数与抽象类:
- 如果一个类含有至少一个纯虚函数(virtual 函数名 = 0),那么这个类被称为抽象类,不能直接创建其对象。
- 抽象类常作为基类使用,用于派生子类。
7. 友元:
- 友元函数不是类的成员函数,但它可以访问类的private和protected成员。
- 关键字`friend`用于声明友元。
8. 动态内存管理:
- `new`用于动态分配内存,返回对象或数组的指针。
- `delete`用于释放由`new`分配的内存,防止内存泄漏。
9. 面向对象特性比较:
- C++与C语言相比,最大的改进是引入了面向对象编程的概念,如类和对象。
10. 重载规则:
- 重载函数可以通过参数列表(数量、类型或顺序不同)、不同返回类型或不同函数名称(但不推荐)来实现。
11. 构造函数与默认构造函数:
- 类可以有多个构造函数,以便对不同情况初始化对象。
- 缺省构造函数是无参数的构造函数,如果没有显式定义,编译器会提供一个。
12. 操作符重载:
- 可以对多种操作符进行重载,以适应类的操作需求。
13. 公有继承:
- 基类的非私有成员在派生类中保持其访问权限,即public成员在派生类中仍为public,protected成员仍为protected。
14. 调用基类成员函数:
- 使用作用域解析运算符::来调用基类的成员函数,如`Base::fun()`。
15. 示例代码分析:
- 该示例程序会输出"Base::fun"和"Derived::fun",表明在派生类的fun()函数中,通过`Base::fun()`调用了基类的fun()函数。
以上知识点涵盖了C++面向对象程序设计的基本概念和重要特性,包括类、对象、继承、访问控制、构造函数、析构函数、运算符重载、动态内存管理和友元等。这些知识是理解和编写C++面向对象程序的基础。