第十一周 阅读程序(一)
来源:互联网 发布:网络电视怎么搜索电影 编辑:程序博客网 时间:2024/04/29 16:16
/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:呼亚萍 * 完成日期:2015年5月20日 * 版 本 号:v1.0 * * 问题描述: 先阅读程序,写出你预想的运行结果,再记录运行结果,如果两者有差异,再读程序给出解释。 * 程序输入:相应的程序 * 程序输出:对应得结果 */ #include <iostream>using namespace std;class Data{public: Data(int i):x(i) { cout<<"A"; } ~Data() { cout<<"B"; }private: int x;};class Base{public: Base(int i):b1(i) { cout<<"C"; } ~Base() {cout<<"D";}private: int b1;};class Derived:public Base{public: Derived(int i,int j):Base(i),d1(j) { cout<<"E"; } ~Derived() { cout<<"F"; }private: Data d1;};int main(){ Derived obj(1,2); return 0;}
运算结果:
#include <iostream>using namespace std;class G{public: static int m; G() { m++; cout<<"G begins\n"; } ~G() { cout<<"G ends\n"; m--; }};int G::m=0;class D:public G{public: D() { m++; cout<<"D begins\n"; } ~D() { cout<<"D ends\n"; m--; }};int main(){ D objg; cout<<G::m<<endl; return 0;}
运算结果:
#include<iostream>using namespace std;class A{private: int x;protected: int y;public: int z; A(int a,int b,int c) { x=a; y=b; z=c; } int Getx() { return x; } int Gety() { return y; } void ShowA() { cout<< "x="<<x<<'\t'; cout<<"y="<<y<<'\t'; cout<<"z="<<z<<'\n'; }};class B:public A //将class B:public A 中的public改为protected,A类中的公有成员与保护成员将无法在类外访问;删除public,A类为私有继承,无法在类外访问A类中ShowA()函数{private: int m,n;public: B(int a,int b,int c,int d,int e):A(a,b,c) { m=d; n=e; } void Show() { cout<<"m="<<m<<'\t'<<"n="<<n<<'\n'; cout<<"x="<<Getx()<<'\t'; cout<<"y="<<y<<'\t'<<"z="<<z<<'\n'; } int Sum() { return (Getx()+y+z+m+n); }};int main(){ B b1(1,2,3,4,5); b1.ShowA(); b1.Show(); cout<< "Sum="<<b1.Sum()<<'\n'; cout<<"x="<<b1.Getx()<<'\t'; cout << "y=" <<b1.Gety()<<'\t'; cout << "z="<<b1.z<<'\n'; return 0;}
运算结果:
#include <iostream>using namespace std;class Part //部件类{public: Part(); Part(int i); ~Part();private: int val;};Part::Part(){ val=0; cout<<"调用Part的默认构造函数:"<<val<<endl;}Part::Part(int i){ val=i; cout<<"调用Part的构造函数: "<<val<<endl;}Part::~Part(){ cout<<"调用Part的析构函数: "<<val<<endl;}class Whole: public Part{public: Whole(); Whole(int,int,int,int); ~Whole();private: Part one; Part two; int data;};Whole::Whole(){ data=0; cout<<"调用whole的默认构造函数: "<<data<<endl;}Whole::Whole(int p, int i,int j,int k):Part(p),one(j),two(i),data(k) //问题2 { cout<<"调用whole的构造函数: "<<data<<endl;}Whole::~Whole(){ cout<<"调用whole的析构函数: "<<data<<endl;}void f(){ Whole w1; Whole w2(1,2,3,4);}int main(){ f(); return 0;}
运算结果;
知识点总结:
将Whole类的构造函数(见注释//问题2)改为下面形式,Whole::Whole(int p, int i,int j,int k): Part(p),two(i),one(j),data(k),解释出现的警告信息:因为在执行构造函数时先按照顺序执行上一级的构造函数,即使位置写反,计算机也会按正常的顺序进行编译,在程序的最后执行析构函数。
学习心得:
通过阅读程序加深了对知识点的了解。
0 0
- 第十一周阅读程序(一)
- 第十一周 阅读程序(一)
- 第十一周程序阅读:自选阅读一
- 第十一周 阅读程序
- 第十一周阅读程序
- 第十一周阅读程序
- 第十一周阅读程序
- 第十一周阅读程序
- 第十一周程序阅读
- 第十一周阅读程序
- 第十一周阅读一
- 第十一周阅读程序(2)
- 第十一周阅读程序(3)
- 第十一周阅读程序(4)
- 第十一周 阅读程序(3)
- 第十一周阅读程序(1)
- 第十一周阅读程序(2)
- 第十一周阅读程序(3)
- 来自http://blog.csdn.net/a837199685
- Java中的路径问题
- 第十一周 课后实践:阅读程序(1)(2)
- VTP中VLAN配置信息不同步故障排除
- 第十一周项目0--是春哥啊
- 第十一周 阅读程序(一)
- 关于链式表达式
- 5.20 孔融让梨之 分数化简
- 第十周阅读程序二
- <%@ include file=""%> 和<jsp:include page=""/>两者的区别
- 第7周项目4-我的向量类
- 第12周 《C++语言基础》程序阅读——多重继承(1)
- 第八周项目 4 我的向量类
- OJStudent类转换为Teacher类