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
  • 相关阅读:
    Day15模块(导入,使用)
    day14 迭代器,生成器,函数的递归调用
    Day13有参装饰器,三元表达式,匿名函数
    re模块
    Day12装饰器
    subprocess模块windows系统命令和linux系统命令
    Day11名称空间,作用域,闭包函数
    识别 Linux上的设备(磁盘)类型
    Linux lsblk和df命令区别
    Linux远程拷贝scp
  • 原文地址:https://www.cnblogs.com/ziyuan/p/1316282.html
Copyright © 2011-2022 走看看