本站为考生提供自考信息服务,仅供学习交流使用,与所示院校无合作关系,非政府官方网站,官方信息以省教育考试院和大学的网站为准。
..
志愿者

您现在的位置:自考网 > 我的自考 > 自学考试报考经验 > 正文内容

富有耐心的一起研究综合实例

来源:小易 | 2018-03-13 21:16:46 【加入收藏

最近更新时间:2018-03-13 21:32:00

现在看来四月考前想完成所有的学习任务显然是不太可能了,还不如像现在踏踏实实一天学习一点点。今天继续学习4.4节“调用复制构造函数的综合实例”,这对于前面的知识点算是一个总结性的理解学习,例4-9也是本书目前为止最长的一个程序了,今天的任务就是耐心研究这个程序。
 
1、如下图1所示,先根据书本内容将程序编写出来,本程序重点涉及构造函数、复制构造函数及析构函数,边写边复习相关概念内容,首先要看懂写的内容。
 
2、主函数之前的部分还是很好理解的,包括类Point的声明及成员函数(构造函数、复制构造函数、析构函数等)定义,还有Point类的对象作为形参的display函数,Point类对象的引用作为形参的disp函数,display及dip两个函数的返回值为void,还有一个返回值为Point类的对象的函数fun。
 
3、难点部分还是主函数部分,需要输出20条左右内容,按程序内容推算了一下结果,可惜只完成了几个步骤最终没能完成。主要难点就是调用复制构造函数:
①当用一个类的对象去初始化另一个对象时( Point B(A) ),需要调用复制构造函数,这一点昨天就演示过,很好理解;
②函数(display)的形参是类的对象,进行形参和实参的结合时,需要调用复制构造函数;
③函数( fun() )的返回值是对象,当函数调用完成返回时调用复制构造函数,但这里首次编译的时候并没有调用复制构造函数,如下图1-2对比输出结果,如图2再次编译加了选项-fno-elide-constructors后才强制调用复制构造函数,输出结果才与书本一致。关于这一点可以搜索“编译器返回值优化”或阅读下面的引用链接。
http://blog.csdn.net/gatieme/article/details/22650353
 
4、根据程序输出结果可以得知:①调用复制构造函数时因为产生了临时对象,退出函数时就调用析构函数析构临时对象;②对于不是临时对象的构造函数,按先调用后析构的原则,即按相反的顺序执行。
 
5、display及disp两个函数对比的对比可以得知:①前者对形参为类的对象,后者的形参为类对象的引用;②disp因为使用对象的引用作为参数所以不需要临时对象,不需要调用复制构造函数,也就不用析构函数,少了两个步骤,推荐使用。
 
至此,本例程序就研究完毕了,自认为掌握的还算不错,但具体应用如何就不得而知了,还得不断练习。现在看来四月考前想完成所有的学习任务显然是不太可能了,还不如像现在踏踏实实一天学习一点点。今天继续学习4.4节“调用复制构造函数的综合实例”,这对于前面的知识点算是一个总结性的理解学习,例4-9也是本书目前为止最长的一个程序了,今天的任务就是耐心研究这个程序。
 
1、如下图1所示,先根据书本内容将程序编写出来,本程序重点涉及构造函数、复制构造函数及析构函数,边写边复习相关概念内容,首先要看懂写的内容。
 
2、主函数之前的部分还是很好理解的,包括类Point的声明及成员函数(构造函数、复制构造函数、析构函数等)定义,还有Point类的对象作为形参的display函数,Point类对象的引用作为形参的disp函数,display及dip两个函数的返回值为void,还有一个返回值为Point类的对象的函数fun。
 
3、难点部分还是主函数部分,需要输出20条左右内容,按程序内容推算了一下结果,可惜只完成了几个步骤最终没能完成。主要难点就是调用复制构造函数:
①当用一个类的对象去初始化另一个对象时( Point B(A) ),需要调用复制构造函数,这一点昨天就演示过,很好理解;
②函数(display)的形参是类的对象,进行形参和实参的结合时,需要调用复制构造函数;
③函数( fun() )的返回值是对象,当函数调用完成返回时调用复制构造函数,但这里首次编译的时候并没有调用复制构造函数,如下图1-2对比输出结果,如图2再次编译加了选项-fno-elide-constructors后才强制调用复制构造函数,输出结果才与书本一致。关于这一点可以搜索“编译器返回值优化”或阅读下面的引用链接。
http://blog.csdn.net/gatieme/article/details/22650353
 
4、根据程序输出结果可以得知:①调用复制构造函数时因为产生了临时对象,退出函数时就调用析构函数析构临时对象;②对于不是临时对象的构造函数,按先调用后析构的原则,即按相反的顺序执行。
 
5、display及disp两个函数对比的对比可以得知:①前者对形参为类的对象,后者的形参为类对象的引用;②disp因为使用对象的引用作为参数所以不需要临时对象,不需要调用复制构造函数,也就不用析构函数,少了两个步骤,推荐使用。
 
至此,本例程序就研究完毕了,自认为掌握的还算不错,但具体应用如何就不得而知了,还得不断练习。现在看来四月考前想完成所有的学习任务显然是不太可能了,还不如像现在踏踏实实一天学习一点点。今天继续学习4.4节“调用复制构造函数的综合实例”,这对于前面的知识点算是一个总结性的理解学习,例4-9也是本书目前为止最长的一个程序了,今天的任务就是耐心研究这个程序。
 
1、如下图1所示,先根据书本内容将程序编写出来,本程序重点涉及构造函数、复制构造函数及析构函数,边写边复习相关概念内容,首先要看懂写的内容。
 
2、主函数之前的部分还是很好理解的,包括类Point的声明及成员函数(构造函数、复制构造函数、析构函数等)定义,还有Point类的对象作为形参的display函数,Point类对象的引用作为形参的disp函数,display及dip两个函数的返回值为void,还有一个返回值为Point类的对象的函数fun。
 
3、难点部分还是主函数部分,需要输出20条左右内容,按程序内容推算了一下结果,可惜只完成了几个步骤最终没能完成。主要难点就是调用复制构造函数:
①当用一个类的对象去初始化另一个对象时( Point B(A) ),需要调用复制构造函数,这一点昨天就演示过,很好理解;
②函数(display)的形参是类的对象,进行形参和实参的结合时,需要调用复制构造函数;
③函数( fun() )的返回值是对象,当函数调用完成返回时调用复制构造函数,但这里首次编译的时候并没有调用复制构造函数,如下图1-2对比输出结果,如图2再次编译加了选项-fno-elide-constructors后才强制调用复制构造函数,输出结果才与书本一致。关于这一点可以搜索“编译器返回值优化”或阅读下面的引用链接。
http://blog.csdn.net/gatieme/article/details/22650353
 
4、根据程序输出结果可以得知:①调用复制构造函数时因为产生了临时对象,退出函数时就调用析构函数析构临时对象;②对于不是临时对象的构造函数,按先调用后析构的原则,即按相反的顺序执行。
 
5、display及disp两个函数对比的对比可以得知:①前者对形参为类的对象,后者的形参为类对象的引用;②disp因为使用对象的引用作为参数所以不需要临时对象,不需要调用复制构造函数,也就不用析构函数,少了两个步骤,推荐使用。
 
至此,本例程序就研究完毕了,自认为掌握的还算不错,但具体应用如何就不得而知了,还得不断练习。现在看来四月考前想完成所有的学习任务显然是不太可能了,还不如像现在踏踏实实一天学习一点点。今天继续学习4.4节“调用复制构造函数的综合实例”,这对于前面的知识点算是一个总结性的理解学习,例4-9也是本书目前为止最长的一个程序了,今天的任务就是耐心研究这个程序。
 
1、如下图1所示,先根据书本内容将程序编写出来,本程序重点涉及构造函数、复制构造函数及析构函数,边写边复习相关概念内容,首先要看懂写的内容。
 
2、主函数之前的部分还是很好理解的,包括类Point的声明及成员函数(构造函数、复制构造函数、析构函数等)定义,还有Point类的对象作为形参的display函数,Point类对象的引用作为形参的disp函数,display及dip两个函数的返回值为void,还有一个返回值为Point类的对象的函数fun。
 
3、难点部分还是主函数部分,需要输出20条左右内容,按程序内容推算了一下结果,可惜只完成了几个步骤最终没能完成。主要难点就是调用复制构造函数:
①当用一个类的对象去初始化另一个对象时( Point B(A) ),需要调用复制构造函数,这一点昨天就演示过,很好理解;
②函数(display)的形参是类的对象,进行形参和实参的结合时,需要调用复制构造函数;
③函数( fun() )的返回值是对象,当函数调用完成返回时调用复制构造函数,但这里首次编译的时候并没有调用复制构造函数,如下图1-2对比输出结果,如图2再次编译加了选项-fno-elide-constructors后才强制调用复制构造函数,输出结果才与书本一致。关于这一点可以搜索“编译器返回值优化”或阅读下面的引用链接。
http://blog.csdn.net/gatieme/article/details/22650353
 
4、根据程序输出结果可以得知:①调用复制构造函数时因为产生了临时对象,退出函数时就调用析构函数析构临时对象;②对于不是临时对象的构造函数,按先调用后析构的原则,即按相反的顺序执行。
 
5、display及disp两个函数对比的对比可以得知:①前者对形参为类的对象,后者的形参为类对象的引用;②disp因为使用对象的引用作为参数所以不需要临时对象,不需要调用复制构造函数,也就不用析构函数,少了两个步骤,推荐使用。
 
至此,本例程序就研究完毕了,自认为掌握的还算不错,但具体应用如何就不得而知了,还得不断练习。现在看来四月考前想完成所有的学习任务显然是不太可能了,还不如像现在踏踏实实一天学习一点点。今天继续学习4.4节“调用复制构造函数的综合实例”,这对于前面的知识点算是一个总结性的理解学习,例4-9也是本书目前为止最长的一个程序了,今天的任务就是耐心研究这个程序。
 
1、如下图1所示,先根据书本内容将程序编写出来,本程序重点涉及构造函数、复制构造函数及析构函数,边写边复习相关概念内容,首先要看懂写的内容。
 
2、主函数之前的部分还是很好理解的,包括类Point的声明及成员函数(构造函数、复制构造函数、析构函数等)定义,还有Point类的对象作为形参的display函数,Point类对象的引用作为形参的disp函数,display及dip两个函数的返回值为void,还有一个返回值为Point类的对象的函数fun。
 
3、难点部分还是主函数部分,需要输出20条左右内容,按程序内容推算了一下结果,可惜只完成了几个步骤最终没能完成。主要难点就是调用复制构造函数:
①当用一个类的对象去初始化另一个对象时( Point B(A) ),需要调用复制构造函数,这一点昨天就演示过,很好理解;
②函数(display)的形参是类的对象,进行形参和实参的结合时,需要调用复制构造函数;
③函数( fun() )的返回值是对象,当函数调用完成返回时调用复制构造函数,但这里首次编译的时候并没有调用复制构造函数,如下图1-2对比输出结果,如图2再次编译加了选项-fno-elide-constructors后才强制调用复制构造函数,输出结果才与书本一致。关于这一点可以搜索“编译器返回值优化”或阅读下面的引用链接。
http://blog.csdn.net/gatieme/article/details/22650353
 
4、根据程序输出结果可以得知:①调用复制构造函数时因为产生了临时对象,退出函数时就调用析构函数析构临时对象;②对于不是临时对象的构造函数,按先调用后析构的原则,即按相反的顺序执行。
 
5、display及disp两个函数对比的对比可以得知:①前者对形参为类的对象,后者的形参为类对象的引用;②disp因为使用对象的引用作为参数所以不需要临时对象,不需要调用复制构造函数,也就不用析构函数,少了两个步骤,推荐使用。
 
至此,本例程序就研究完毕了,自认为掌握的还算不错,但具体应用如何就不得而知了,还得不断练习。现在看来四月考前想完成所有的学习任务显然是不太可能了,还不如像现在踏踏实实一天学习一点点。今天继续学习4.4节“调用复制构造函数的综合实例”,这对于前面的知识点算是一个总结性的理解学习,例4-9也是本书目前为止最长的一个程序了,今天的任务就是耐心研究这个程序。
 
1、如下图1所示,先根据书本内容将程序编写出来,本程序重点涉及构造函数、复制构造函数及析构函数,边写边复习相关概念内容,首先要看懂写的内容。
 
2、主函数之前的部分还是很好理解的,包括类Point的声明及成员函数(构造函数、复制构造函数、析构函数等)定义,还有Point类的对象作为形参的display函数,Point类对象的引用作为形参的disp函数,display及dip两个函数的返回值为void,还有一个返回值为Point类的对象的函数fun。
 
3、难点部分还是主函数部分,需要输出20条左右内容,按程序内容推算了一下结果,可惜只完成了几个步骤最终没能完成。主要难点就是调用复制构造函数:
①当用一个类的对象去初始化另一个对象时( Point B(A) ),需要调用复制构造函数,这一点昨天就演示过,很好理解;
②函数(display)的形参是类的对象,进行形参和实参的结合时,需要调用复制构造函数;
③函数( fun() )的返回值是对象,当函数调用完成返回时调用复制构造函数,但这里首次编译的时候并没有调用复制构造函数,如下图1-2对比输出结果,如图2再次编译加了选项-fno-elide-constructors后才强制调用复制构造函数,输出结果才与书本一致。关于这一点可以搜索“编译器返回值优化”或阅读下面的引用链接。
http://blog.csdn.net/gatieme/article/details/22650353
 
4、根据程序输出结果可以得知:①调用复制构造函数时因为产生了临时对象,退出函数时就调用析构函数析构临时对象;②对于不是临时对象的构造函数,按先调用后析构的原则,即按相反的顺序执行。
 
5、display及disp两个函数对比的对比可以得知:①前者对形参为类的对象,后者的形参为类对象的引用;②disp因为使用对象的引用作为参数所以不需要临时对象,不需要调用复制构造函数,也就不用析构函数,少了两个步骤,推荐使用。
 
至此,本例程序就研究完毕了,自认为掌握的还算不错,但具体应用如何就不得而知了,还得不断练习。现在看来四月考前想完成所有的学习任务显然是不太可能了,还不如像现在踏踏实实一天学习一点点。今天继续学习4.4节“调用复制构造函数的综合实例”,这对于前面的知识点算是一个总结性的理解学习,例4-9也是本书目前为止最长的一个程序了,今天的任务就是耐心研究这个程序。
 
1、如下图1所示,先根据书本内容将程序编写出来,本程序重点涉及构造函数、复制构造函数及析构函数,边写边复习相关概念内容,首先要看懂写的内容。
 
2、主函数之前的部分还是很好理解的,包括类Point的声明及成员函数(构造函数、复制构造函数、析构函数等)定义,还有Point类的对象作为形参的display函数,Point类对象的引用作为形参的disp函数,display及dip两个函数的返回值为void,还有一个返回值为Point类的对象的函数fun。
 
3、难点部分还是主函数部分,需要输出20条左右内容,按程序内容推算了一下结果,可惜只完成了几个步骤最终没能完成。主要难点就是调用复制构造函数:
①当用一个类的对象去初始化另一个对象时( Point B(A) ),需要调用复制构造函数,这一点昨天就演示过,很好理解;
②函数(display)的形参是类的对象,进行形参和实参的结合时,需要调用复制构造函数;
③函数( fun() )的返回值是对象,当函数调用完成返回时调用复制构造函数,但这里首次编译的时候并没有调用复制构造函数,如下图1-2对比输出结果,如图2再次编译加了选项-fno-elide-constructors后才强制调用复制构造函数,输出结果才与书本一致。关于这一点可以搜索“编译器返回值优化”或阅读下面的引用链接。
http://blog.csdn.net/gatieme/article/details/22650353
 
4、根据程序输出结果可以得知:①调用复制构造函数时因为产生了临时对象,退出函数时就调用析构函数析构临时对象;②对于不是临时对象的构造函数,按先调用后析构的原则,即按相反的顺序执行。
 
5、display及disp两个函数对比的对比可以得知:①前者对形参为类的对象,后者的形参为类对象的引用;②disp因为使用对象的引用作为参数所以不需要临时对象,不需要调用复制构造函数,也就不用析构函数,少了两个步骤,推荐使用。
 
至此,本例程序就研究完毕了,自认为掌握的还算不错,但具体应用如何就不得而知了,还得不断练习。

上一篇: 我想自考,但要有足够好的经验和方法 下一篇: 详细了解构造函数

  • 扫二维码
    关注自考微信

    获取更多自考猛料!欢迎关注自考网官方微信
    我们在这里等你哦~
  • 扫二维码
    关注志愿者老师微信

    获取最新自考报名,获得免费自考一对一解答机会
    更多的自考难题、自考疑问、网络上无法搜索到的,我们将人工帮助你~
     
相关文章
看了本文的自考生还看了

重要的事情,电话里聊