C++面向对象:运算符重载与双目运算符

需积分: 9 33 下载量 142 浏览量 更新于2024-08-23 收藏 5.33MB PPT 举报
"重载双目运算符是C++面向对象编程中的一个重要概念,它允许我们为现有的运算符赋予新的含义,以适应特定类的操作。在C++中,双目运算符如`+`, `-`, `*`, `/`, `==`, `<`等需要两个操作数参与计算。为了重载这些运算符,我们需要定义一个类的成员函数,该函数接受一个与运算符右侧操作数相同类型的参数。 在描述中提到,如果我们要为类A重载双目运算符B,使得可以使用表达式`oprd1 B oprd2`,其中`oprd1`是A类的对象,`oprd2`是另一个类型,那么我们应该将B作为A类的成员函数来重载。这样,表达式`oprd1 B oprd2`实际上会被解析为`oprd1.operator B(oprd2)`。这允许我们定制运算符的行为,例如,如果我们有一个自定义的复数类,我们可以重载`+`运算符来实现复数相加。 在C++的学习路径中,这通常出现在第四章“运算符重载”中。C++不仅是一个面向过程的编程语言,还是面向对象的,它从C语言发展而来,提供了类和对象的概念,以及继承、多态性和虚函数等面向对象特性。C++的词法和词法规则与C语言相似,但有所扩展,包括关键字、标识符、运算符和分隔符等。 C++对C的扩充主要体现在引入了类的概念和面向对象的机制,比如封装、继承和多态。此外,还增加了模板、异常处理、命名空间等功能,使得C++更适合大型软件开发。学习C++意味着你将掌握两种编程范式,可以灵活地根据需求选择面向过程或面向对象的编程方式。 在词法分析中,关键字是预定义的保留词汇,如`int`、`float`、`if`、`else`等,它们具有特殊含义,不能用作标识符。标识符是程序员创建的名称,用于标识变量、函数、类等。运算符如`+`、`-`执行特定的数学或逻辑操作,而重载这些运算符可以改变其在特定类中的行为。 C++的发展历程也值得提及,最初的C++编译器是通过预编译器将C++代码转换为C代码来实现的,随着时间的推移,C++不断发展,添加了多重继承、模板、异常处理和命名空间等特性,并最终在1997年形成了ANSI发布的C++标准,使得C++成为一个更强大且标准化的编程语言。