zoukankan      html  css  js  c++  java
  • 牛课--C/C++

    引用是除指针外另一个可以产生多态效果的手段。

     1 //引用是除指针外另一个可以产生多态效果的手段。
     2 #include<iostream>
     3 using namespace std;
     4 class A
     5 {
     6 public:
     7  virtual void print()
     8  {
     9   cout<<"A"<<endl;
    10  }
    11 };
    12 class B:public A
    13 {
    14 public:
    15  void print()
    16  {
    17   cout<<"B"<<endl;
    18  }
    19 };
    20 void main()
    21 {
    22  B b;
    23  
    24  A* t = new B();
    25  A& a=b;
    26  
    27  a.print();
    28  t->print();
    29 }
    输出:
    B
    B
    请按任意键继续. . .
       另外:
     1.
        A* a = new B  //B是A的子类
        delete a 
        此时父类析构函数需要加virtual,如果不加virtual,那么最后只会调用A的析构函数,而派生的部分,并没有得到析构,导致内存泄露。
     
        B* b = new B
        delete b
        此时父类析构函数并不需要加virtual,就是一个很正常的构造析构过程
        A() -> B() -> ~B() -> ~A()
    2.
    • 负数的高位用1补齐,正数的高位用0补齐,所以b(0xe0)的二进制表示形式是1111 1111 1111 1111 1111 1111 1110 0000,十六进制的表示形式是0xffffffe0。

    3. 全局变量不再栈区

  • 相关阅读:
    set基本用法-----2
    set基本用法---1
    最大和
    最长公共上升子序列||LCIS
    CODEVS【3556】科技庄园
    CODEVS【3372】选学霸
    CODEVS【1025】选菜
    hlg1398邮局问题【找中位数】
    hlg1175小陈老师、桌子、盘子【计算几何】
    hlg1216数的划分【地推公式|dfs】
  • 原文地址:https://www.cnblogs.com/ranjiewen/p/5241206.html
Copyright © 2011-2022 走看看