`
strong_fee
  • 浏览: 175889 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

读《Primer Plus C++》第十一章 使用类

阅读更多

读《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 编程练习源码工程 第11章

    C++ Primer Plus 编程练习源码工程 第11章 ,这是本人自己学习书籍时写的编程练习的源码工程,供大家参考交流。

    c++ primer plus第五版源代码与编程心得

    本书是c++ primer plus第五版的源代码,以及好多高手的编程心路沥程,不得不看!! 听君一席话胜读十年书!

    c++primer 第五版第11章 课后习题答案

    c++primer 第五版,不是那个plus的书,是Lippman写的书 第11章 课后习题答案 以前看书的时候做的 好久了 发现还在就上传上来 有需要的就下吧 应该所有题目都做的

    《C++ Primer Plus(第6版)中文版》编程练习第11-12章答案

    《C++ Primer Plus(第6版)中文版》编程练习第11-12章答案

    《C++ Primer Plus第6版中文版》学习笔记(第十一章)

    《C++ Primer Plus第6版中文版》学习笔记(第十一章) 红字内容是有疑问或者没把握的。 绿字部分是比较重要,或者经过确认的

    《C++ primer plus》第13章 类继承1

    要将类对象转换为其他类型,应定义转换函数(参见第11章)按值传递对象与传递引用:一般使用对象作为参数的函数时,应按引用而不是按值来传递对象;返回对象与返回引用:

    《C++ primer plus》读书笔记(三)

    本文是C++读书笔记系列的第三篇,是读完《C++ primer plus》一书第九、十两章记录下来的笔记,学习C++的同学可以看看参考下。

    c++ primer(5th)非扫描版+中文扫描版习题集

    c++primer清晰非扫描版本,学习c++的经典版本,c++基本语法,c++11新特性!(文件较大百度网盘链接和密码)

    自学编程语言资料合集2

    《C++ Primer Plus(第6版)英文版(上、下册)》是根据2003年的ISO/ANSI C++标准编写的,通过大量短小精悍的程序详细而全面地阐述了C++的基本概念和技术,并专辟一章介绍了C++11新增的功能。 全书分18章和10个附录,...

    c++性能优化指南

    本书是一本 C++ 代码优化指南。作者精选了他在近30年编程生涯中最频繁使用的技术和能够带来最大性能提升效果的技术,旨在让读者在提升 C++ 程序的同时,思考软件优化之美。书中主要内容有:代码优化的意义和总原则,...

    C++语法学习笔记(至六十一)

    C++语法的学习笔记,随学习进度更新,目前到(六十一)。 书籍为PDF版的:C++ Primer Plus 第6版 中文版(971页) 学习进度为:第四章4.10.3(比较数组、vector对象和array对象) 尚未学习到4.11(总结) 顺便...

    my-C-plus-plus:c++的学习笔记

    《C++ Primer》百科级 最新是第五版 作者参与了C++第一个编译器的实现 《The C++ Programming Language》最新是第四版,作者是C++之父,目前还没有中文版 《Effective C++》最新是第三版,告诉你什么改写,什么不该...

    CppPrimer:C ++ Primer第五次练习的解决方案

    使用-std=c++11 (推荐: -pedantic -Wall )标志进行编译。 您发现不正确的信息了吗? 。 内容 第一部分:基础知识 第二部分:C ++库 第三部分:面向班级作者的工具 第四部分:高级主题 第19章专用工具和技术 ...

    leetcode2-cppfaq:此repo包含对C++聊天中的新手有用的信息

    Primer Plus” Stephen Prata:C++ 编程语言。 讲座和练习 “C ++ 入门”[第 5 版],Stanley B. Lippman、Josée Lajoie、Barbara E. Moo B. Lippmann - C++ 编程语言。 基础课。 Bjarne Stroustrup 的“编程:使用 ...

    若干源程序资料12.rar

    2012-06-11 21:03 340,134 C++ Primer Plus.第五版.习题解答和例题代码.rar 2012-06-11 21:03 956,190 C++ Primer中文版(第4版)中的源代码.rar 2012-06-11 21:12 1,386,523 C++-打飞机的游戏.rar 2012-06-11 21:06 ...

    ASP.NET常见问题集锦.zip

    C Primer Plus 5th.chm C#中结构与类的区别.doc C#复习.txt C#实现Web文件上传的两种方法.doc C#排序算法大全.txt C#编程规范.doc C#语言参考.doc Code.doc C#中的“装箱”与“拆箱”.txt Datagrid分页、...

    Tutoring-2020

    辅导2020目录目录-练习考试HCMC 12级奥运新闻10 升级-解决方案奥运新闻11 程式设计环境代码块下载此朋友 参考信息专业课本-教育培训部第1卷第2册算法和编程-LêMinhHoàng C ++ Primer Plus 信息学中的一些值得注意...

Global site tag (gtag.js) - Google Analytics