第八周项目32-对程序运行结果的理解
来源:互联网 发布:it人才缺口 编辑:程序博客网 时间:2024/06/01 23:10
问题及代码:
/**Copyright (c) 2015,烟台大学计算机学院*All rights reserved.*文件名称:text.cpp*作者:徐健*完成日期:2015年4月23日*版本号:v1.0**问题描述: 理解程序的运行方式*输入描述: 无*程序输出: 调用构造函数以及析构函数的顺序*/#include <iostream>using namespace std;class A{public: A(){cout<<"A";} ~A(){cout<<"~A";}};class B{ A *p;public: B() { cout<<"B"; p=new A(); } ~B() { cout<<"~B"; delete p; }};int main(){ B obj; return 0;}
2.
#include <iostream>using namespace std;class MyClass{public: MyClass(int x=0):i(x){cout<<"C"<<i;} ~MyClass(){cout<<"D"<<i;} void SetValue(int val){i=val;} int GetVal(){return i;}private: int i;};int main(){ MyClass *p[3]; int i; for (i=0; i<3; i++) { p[i]=new MyClass(i); p[i]->SetValue(p[i]->GetVal()*2); } for (i=0; i<3; i++) delete p[i]; cout<<endl; return 0;}3.
#include <iostream>using namespace std;class AA{public: AA(int i,int j) { A=i; B=j; cout<<"Constructor\n"; } AA(AA &obj) { A=obj.A+1; B=obj.B+2; cout<<"Copy_Constructor\n"; } ~AA() { cout<<"Destructor\n"; } void print() { cout<<"A="<<A<<",B="<<B<<endl; }private: int A,B;};int main(){ AA a1(2,3); AA a2(a1); a2.print(); AA *pa=new AA(5,6); pa->print(); delete pa; return 0;}运行结果:
知识点总结:
此项目对析构函数以及构造函数的调用顺序进行了解析测试,可以看出当定义了一个对象时,如果 此类的构造函数中有其他的类对象,便调用其他类的构造函数,然后调用此对象的构造函数,之后析构函数会按照先进后出,后进先出的原则(与构造函数的调用顺序相反)调用析构函数。
学习心得:
如果能够将构造函数与析构函数熟悉其调用顺序,可以将其用于一些特殊的地方,从而实现一些出人意料的效果。
0 0
- 第八周项目32-对程序运行结果的理解
- 第八周项目32-对程序运行结果的理解
- 第九周项目一 写出程序的运行结果并理解(2)
- 第九周项目一 写出程序的运行结果并理解(3)
- 第九周项目一 阅读程序,写出程序运行结果并理解(1)
- 第9周-项目1-阅读程序并写出运行结果理解(1)
- 第9周-项目1阅读理解程序并写出运行结果(2)
- 第9周-项目1-阅读并理解程序写出运行结果(3)
- 第十周项目一 阅读程序,写出程序运行的结果(1)
- 第十周项目一 阅读程序,写出程序运行的结果(2)
- 第十周项目一 阅读程序,写出程序运行的结果(3)
- 第十周项目一 阅读程序,写出程序运行的结果(4)
- 第十二周项目一 阅读程序,请写出这些程序的运行结果(1)
- 第十二周项目一 阅读程序,请写出这些程序的运行结果(2)
- 第十二周项目一 阅读程序,请写出这些程序的运行结果(3)
- 第十二周项目一 阅读程序,请写出这些程序的运行结果(4)
- 第十三周项目一 阅读程序请写出这些程序的运行结果(1 虚函数)
- 第十三周项目一 阅读程序请写出这些程序的运行结果(2 虚析构函数)
- 自己设计了一个wipebox 幻灯片
- Linux 杂记
- ThinkPHP里的MVC
- 算法与心法:需要二维数组吗?
- 数组和链表简单对比
- 第八周项目32-对程序运行结果的理解
- [算法题] 最接近零的子数组和 Subarray Sum Closest
- WPF listbox控件用法介绍
- python爬虫——基于selenium用火狐模拟登陆爬搜索关键词的微博
- linux下的apache的安装
- 回溯算法之装载问题
- 16、Map-Hashmap
- java基础
- 软件测试兼职