"这是一份关于C++学习的笔记,主要涵盖了C++的基本概念、程序设计原则、面向对象特性以及异常处理机制。笔记基于‘计算引论’课程,并参考了钱能的清华大学出版社教材。"
在C++编程中,异常处理是一种重要的错误处理机制。当在程序执行过程中发生异常时,程序会立即停止当前执行路径,返回到调用者,这个过程被称为异常的抛出。例如,在描述中提到的程序中,如果在函数B::div执行时发生了A类型的异常,即使是由B类型对象调用,异常仍然会被A类型的异常处理程序段处理。这是因为C++支持基类型的异常处理派生类型的异常,即一个捕获基类异常的catch块可以处理任何派生自该基类的异常。
C++的异常处理结构由try、catch和throw关键字构成。try块包含可能抛出异常的代码,而catch块则定义了如何处理这些异常。一个try-catch组合应该完整地封装在一起,意味着一个函数内不能只有try而没有catch,或者只有catch而没有try的声明。如果main函数中的语句改变了异常类型,比如将B类型异常改为A类型,那么相应的异常处理也会随之改变。
C++是C语言的扩展,它引入了面向对象编程的概念,包括封装、继承和多态性。封装允许数据和对数据的操作绑定在一起,提供数据隐藏,防止外部直接访问。继承则允许创建新的类(子类)来扩展或修改已存在的类(父类),从而实现软件重用。多态性允许同一名称的函数在不同类中有不同的实现,增加了代码的灵活性。
程序开发通常包括需求分析、设计、编码、测试和维护等阶段。在C++中,最基本的程序结构包括声明和函数。每个程序都必须有一个主函数main(),它是程序的入口点。程序中的语句需要用分号结束,可以跨行编写,并且所有变量或对象必须先声明再使用。
例如,以下是一个简单的C++程序,它包含了声明、函数调用和输出:
```cpp
#include<iostream.h>
int x = 5, X = 10; // 声明全局变量
void main() {
int y = x * x; // 定义局部变量并赋值
cout << "y=x*x=" << y << "y=X*X=" << X*X << "\n";
}
```
在这个例子中,`#include<iostream.h>`导入了输入输出流库,`void main()`是主函数,`cout`用于输出文本,而`<<`是流插入运算符。变量`x`和`X`的声明允许它们在程序中使用,而`y`的声明仅限于`main`函数内部。
通过理解这些基本概念和异常处理机制,初学者可以更好地掌握C++编程,逐步迈向更复杂和高级的程序设计。