C++面向对象:运算符重载与C++发展历程

需积分: 50 2 下载量 100 浏览量 更新于2024-08-16 收藏 5.34MB PPT 举报
"谭浩强C语言教程主要讲解了C++语言的相关规则和限制,以及C++面向对象程序设计的基本概念。课程涵盖了C++的初步知识,包括从C到C++的发展背景、C++的词法和词法规则,以及C++对C语言的扩充。此外,还介绍了类和对象、运算符重载、继承与派生、多态性与虚函数以及输入输出流等核心概念。" 在C++中,规则和限制主要体现在运算符重载上。C++允许重载大多数运算符,但有四个运算符不能被重载,它们是成员访问运算符`.`、指针成员运算符`.*`、作用域解析运算符`::`和条件运算符`?:`。重载运算符时,必须遵守以下原则: 1. **不能创造新的运算符**:C++不允许程序员发明新的运算符,只能重用已经存在的运算符。 2. **保持优先级和结合性不变**:重载运算符不会改变其原有的优先级和结合性,这意味着重载运算符的行为在语法上应与原始运算符一致。 3. **操作数个数不变**:重载运算符不能增加或减少操作数的数量,必须与原始运算符的操作数数量相同。 4. **至少一个操作数是自定义类型**:重载的运算符至少需要一个操作数是用户定义的类类型,这使得我们可以为自定义类型定义特定的运算行为。 C++语言的词法和词法规则涉及到字符集、单词及词法规则。C++的字符集与C语言基本相同,包括字母、数字和其他ASCII码字符,但不包含`@`和`$`。单词主要包括关键字、标识符、运算符、分隔符和注释符。关键字如`int`、`float`、`if`等是预定义的保留字,而标识符则是程序员为程序元素(如函数、类、变量等)创建的名称,它们遵循特定的命名规则。 C++对C语言的增强体现在两方面:一是扩展了面向过程的机制,二是引入了面向对象的机制。C++支持类和对象的概念,使得数据和操作数据的方法可以封装在一起,提高了代码的可维护性和复用性。此外,C++还引入了运算符重载、继承、多态和虚函数等特性,这些是面向对象编程的重要组成部分。 通过学习C++,开发者不仅可以进行传统的面向过程编程,还能进行面向对象编程,适应不同场景的需求。C++的发展历程中,从最初的预编译器形式,到后来的正式编译器,再到标准的制定,都体现了其在编程语言领域的影响力和广泛应用。