zoukankan      html  css  js  c++  java
  • 一到关于c++继承和多态的题

     1class base
     2{
     3public:
     4        base()
     5        {
     6                cout <<" base::val "<<endl;
     7                val = 12345;
     8                print();
     9        }

    10        base(int x)
    11        {
    12                val = x;
    13                cout << " "<<endl;
    14        }

    15        virtual void print()
    16        {
    17                cout << " base:print(), val = "<<val<<endl;
    18        }

    19        base & operator = (int x)
    20        {
    21                val = x;
    22                cout <<" base::operator, val = "<<x<<endl;
    23                return *this;
    24        }

    25        void relase()
    26        {
    27                cout << " base::relase" <<endl;
    28        }

    29         ~base()
    30        {
    31                cout << " ~base::val = "<< val <<endl;
    32        }

    33protected:
    34        int  val;
    35}
    ;
    36
    37class deiver:public base
    38{
    39public:
    40        deiver()
    41        {
    42                cout << " deiver::val "<<endl;
    43        }

    44
    45        deiver(int x)
    46        {
    47                val = x;
    48                print();
    49        }

    50        void print()
    51        {
    52                cout << " deiver::print(), val =  "<< val <<endl;
    53        }

    54        void relase()
    55        {
    56                cout << " deiver::relase, val = "<<val<<endl;
    57        }

    58        deiver & operator = (int x)
    59        {
    60                val = x;
    61                cout <<" deiver::operator, val = "<<x<<endl;
    62                return *this;
    63        }

    64        ~deiver()
    65        {
    66                cout << " deiver::~deiver "<<endl;
    67        }

    68}
    ;
    69void des(base * b)
    70{
    71        b->print();
    72        b->relase();
    73}

    74deiver  de = 98765;
    75int main()
    76{
    77        deiver  * dee = new deiver;
    78        *(base *)dee = 100;
    79        des(dee);
    80        delete dee;
    81        return 0;
    82}

    83
    84
  • 相关阅读:
    Spring bean的循环依赖以及解决方式
    在Java中为什么实现了Cloneable接口,就能调用Object的clone方法?
    Java-Objects类-deepEquals()和equals()详解
    Linux TCP状态TIME_WAIT 过多的处理
    mysql字符串区分大小写的问题
    java 类加载
    java native 理解
    Maven配置阿里镜像仓库
    Cannot find name ‘XX‘. Do you need to change your target library? Try changing the `lib` compiler
    Typescript Interfaces(接口)添加任意key值/内容
  • 原文地址:https://www.cnblogs.com/ziyuan/p/1316282.html
Copyright © 2011-2022 走看看