读《Primer Plus C++》第十一章 使用类
一 重载
1. 不要返回指向局部变量或临时对象的引用。因为函数执行完后,局部变量或临时对象将消失,饮用将指向不存在的数据。
2. 操作符重载的形式为:Time operator+ (const Time & t) const;
3. 调用操作符重载的方法有两种:
a) 函数表示法:Time coding;
coding.operator+(t);
b) 操作数表示法:coding+t;
4. 重载限制
a) 重载后的操作符必须至少有一个操作符是用户定义的类型。
b) 不能违反操作符原来的句法规则,如不能将二元操作符重载为一元操作符。
c) 不能定义新的操作符和一些特殊的操作符如(sizeof , . , .* , :: ,?:,强制类型转换操作符)。
d) 有些操作符只能通过成员函数进行重载,如(=,(),[],->)
5. 操作符的左侧是调用对象
二 友元(非成员函数,访问权限与成员函数相同)
1. 声明的形式:friend Time operator* (double m, const Time & t);
友元函数的定义形式:Time operator*(double m, const Time & t){…};
2. 如果要为类重载操作符,并将非类的项作为其第一个参数,则可以用友元函数来反转操作数的顺序。还有一种解决操作数反转的办法是如: Time operator*(double m, const Time &t){return t*m}
3. <<的重载
osream & operator<<(ostream &os,const c_name & obj){
os<<…;
return os;
}
三 类的自动类型转换和强制类型转化
只接受一个参数的构造函数定义了从参数类型到类类型的转换。如果使用关键字explicit(关闭自动特性),则Stonewt(double)将只用于显示强制类型转换,否则还可以用于下面的隐式转换:
a) 将Stonewt对象初始化为double值时。
b) 将double值赋值给Stonewt参数的函数时。
c) 返回值被申明为Stonewt的函数试图返回一个double值时
d) 将double值传递给接受Stonewt参数的函数时
e) 在上述任意一种情况下,使用可转换为double类型的内置对象时。
对于e,当且仅当转换不存在二义性时,才会自动进行而不转换。
explict Stonewt(double lbs);
分享到:
相关推荐
《C++ Primer Plus》是C++编程领域里一本经典的教程,涵盖了从基础语法到高级特性的广泛内容。从第七章到第十三章,这涵盖了类(classes)、对象(objects)、继承(inheritance)、多态(polymorphism)、模板...
在本压缩包文件中,我们聚焦于"C++ Primer Plus"这本书的第11章编程练习。这是一份由用户LeonardoLiuwenbo在学习过程中编写的源代码工程,旨在帮助读者深入理解和应用C++语言。第11章通常涵盖C++中的高级主题,可能...
《C++ Primer Plus 第6版 中文版》是一本深入浅出的C++学习书籍,其课后代码习题答案是学习过程中不可或缺的部分。这本书旨在帮助读者从零基础开始掌握C++编程语言,通过实例和习题来巩固理论知识,提升编程技能。...
《C++ Primer Plus 第五版源程序》是学习C++编程语言的重要参考资料,它包含了该经典教材中的所有示例代码和练习程序。这些源码旨在帮助读者深入理解C++的各种概念和技术,通过实际操作和调试代码,提升编程技能。...
《C++ Primer Plus 编程练习源码工程 第15章》是针对C++初学者的一个宝贵资源,它包含了作者LeonardoLiuwenbo在学习《C++ Primer Plus》这本经典教材时所做的编程练习。这个章节聚焦于C++语言的深入特性,旨在通过...
第十一章继续深入讲解了类和对象的使用,包括类的多态、类的继承、类的组合等,提供了相关的编程练习题和答案,帮助读者掌握类和对象的高级使用技巧。第十六章和第十七章讲解了高级主题,包括模板、异常处理、输入/...
- **标签**:“c++ primerplus 第五版 课后题” 进一步明确了这份资料是针对《C++ Primer Plus》第五版中的课后题目。 - **知识点**:通过这些标签,我们可以推断这份资料主要是为学习这本书的学生提供帮助,让他们...
C++ Primer Plus是一本经典的C++入门教程,第六版在前几版的基础上进行了更新和完善,以适应现代编程环境的需求。 本书涵盖的知识点广泛且深入,主要包括以下几个方面: 1. **基础语法**:C++的基本数据类型(如...
根据提供的文件信息,我们可以从《C++...综上所述,《C++ Primer Plus 第六版》是一本全面介绍C++语言的教程书籍,尤其注重于C++11新特性的讲解,对于希望深入了解和掌握现代C++编程的读者来说,是一本不可多得的好书。
### 《C++ Primer Plus(第6版)中文版》编程练习第11-12章答案 #### 核心知识点解析 ##### 第11章:使用类 本章节主要介绍了如何通过C++来实现一个自定义的向量类(Vector),并通过这个类来探索面向对象编程中的...
《C++ Primer Plus 第五版》是一本深受程序员喜爱的C++学习书籍,它深入浅出地介绍了C++编程语言的基础知识和高级特性。这本书的编程练习是学习过程中的重要环节,通过解决这些练习,读者可以巩固理论知识,提高实际...
《C++ Primer Plus》是一本深受程序员喜爱的C++学习书籍,它涵盖了C++语言的基础到高级主题。这本书的课后练习题是检验和巩固学习成果的重要环节。这些练习题旨在帮助读者理解并掌握C++的关键概念和技术,包括基本...
《C++ Primer Plus 第五版》是一本深受程序员喜爱的C++学习书籍,它深入浅出地介绍了C++语言的基础和高级特性。源代码部分包含了书中所有示例程序,是理解理论知识的重要辅助材料。而“编程心得”部分则汇集了众多...
### 第11章:类和对象 #### PE11-1至PE11-7 本章习题涵盖了面向对象编程的基础,包括类的定义、对象的创建和使用,以及成员函数的调用。读者可以学习到如何使用类和对象来封装数据和行为,以及如何通过继承和多态...
C++ Primer Plus是一本经典的C++教程,第六版更新了内容,以适应现代C++标准,包括C++11、C++14和C++17的新特性。本书涵盖了C++的基础语法、面向对象编程、模板、STL(Standard Template Library)等核心概念,通过...
《C++ Primer Plus》是一本深受程序员喜爱的C++学习指南,它涵盖了C++语言的基础到高级主题。这本书的源代码和部分答案的提供,对于正在学习或已经学习C++的人来说,是一个极其宝贵的资源。下面将详细介绍这个资源...
《C++ Primer》是C++编程领域的一本经典著作,第五版更是深受程序员喜爱的教程。这本书详尽地介绍了C++语言,从基础语法到高级特性,为读者提供了全面而深入的学习路径。作为英文版,它保持了原汁原味的专业表达,...
《C Primer Plus 附录A 复习题答案》提供了对C语言基础知识的全面回顾和解答,是学习C语言过程中的重要参考资料。本附录涵盖了C语言的关键概念、语法和编程技巧,旨在帮助读者巩固对C语言的理解,提高编程能力。 在...
11. 第十一章泛型算法:介绍C++标准库中的算法,如排序、搜索、交换、复制等,它们可以应用于不同的容器。 12. 第十二章类和数据抽象:讲解面向对象编程的核心概念,如类的定义、封装、构造函数、成员函数、友元等...
《C++ Primer Plus》是C++编程领域里一本广受欢迎的教材,以其深入浅出的讲解和丰富的实例闻名。本书的第五版更是对C++11标准进行了全面更新,覆盖了现代C++的新特性。课后习题解答是学习过程中不可或缺的一部分,它...