第十三周阅读程序1

来源:互联网 发布:淘宝助手导出csv 编辑:程序博客网 时间:2024/06/02 06:32

(1)代码:

#include<iostream>using namespace std;class A {int a;public:   A():a(5){}   virtual void print()const { cout<<a;}};class B: public A {   char b;public:    B() { b='E'; }    void print() const { cout<<b; }};void show(A &x) { x.print(); }int main(){   A d1,*p;   B d2;   p=&d2;   d1.print();   d2.print();   p->print();   show(d1);   show(d2);   return 0;}


运行结果:

(2)代码:

#include <iostream>using namespace std;class BASE{private:    char c;public:    BASE(char n):c(n) {}    virtual ~BASE() { cout<<c; }};class DERIVED:public BASE{private:    char c;public:    DERIVED(char n):BASE(n+1),c(n) {}    ~DERIVED(){ cout<<c; }};int main(){    DERIVED d('X');    return 0;}  


运行结果:

(3)代码:

#include <iostream>using namespace std;class Base{public:    virtual void Who() =0;};class FirstDerived:public Base{public:    void Who() { cout<<"F"; }};class SecondDerived:public Base{public:    void Who() { cout<<"S"; }};int main(){    FirstDerived first_obj;    SecondDerived second_obj;    Base &bref=first_obj;    bref.Who();    bref=second_obj;    bref.Who();    Base *bp;    bp=&first_obj;    bp->Who();    bp=&second_obj;    bp->Who();    return 0;}


运行结果:

学习心得:

对第三个阅读程序里面的bref=second_obj;bref.Who();这两句不是很理解,为什么输出结果是F不是S。看了好长时间还不太理解。

0 0
原创粉丝点击