C++运算符重载规则与实践

需积分: 43 30 下载量 157 浏览量 更新于2024-08-09 收藏 6.65MB PDF 举报
"重载运算符的规则-dsp28335开发攻略" 在C++编程语言中,运算符重载是一项重要的特性,允许程序员为类定义特定的运算符行为,使得这些运算符能够适用于自定义的数据类型。《重载运算符的规则-dsp28335开发攻略》一书中详细介绍了这一概念。以下是关于运算符重载的一些关键点: 1. **限制**:前两个不能重载的运算符是`.`(域运算符)和`sizeof`,因为它们作用于类型而非变量或表达式,不具备重载的条件。 2. **运算对象数量**:重载运算符不能改变其操作数的数量,这意味着如果原运算符需要两个操作数,重载版本也必须如此。 3. **优先级和结合性**:重载不能调整运算符的优先级或结合性,这是由C++语法预先定义的。 4. **默认参数**:重载运算符的函数不允许有默认参数,这会改变操作数的数量,违反了第3点的规则。 5. **类对象参与**:至少有一个参数必须是类对象或其引用,防止对标准类型数据的运算符性质进行不适当的修改。 6. **例外情况**:赋值运算符`= `和地址运算符`&`通常不需要用户显式重载。赋值运算符用于类对象之间的赋值,而地址运算符可以返回类对象的内存地址。 7. **保持一致性**:重载的运算符应该保持与原有运算符在标准类型上的行为相似,以确保代码的可读性和预期行为。 这本书是作为中国高等院校计算机基础教育课程体系规划教材的一部分,由谭浩强编著,旨在引导读者从基础到深入地学习C++。全书分为四个部分,涵盖C++的基本知识、面向过程的编程、基于对象的编程以及面向对象的编程。其中,第10章专门讨论了运算符重载,这是面向对象编程中的一个重要概念。 在第1章中,作者介绍了C++的历史,从C语言的发展到C++的出现,强调了C++作为C语言的超集,既支持面向过程编程,也支持面向对象编程。C++通过增加面向对象的机制和扩展C语言的功能,提高了大型软件项目的开发效率。同时,作者还提醒读者,面向对象并不完全替代面向过程,两者在不同场景下各有优势,可以互相配合使用。