亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 【原創(chuàng)】C++ 基礎(chǔ)考考自己,看程序?qū)懗鲚敵?[打印本頁(yè)]

作者: sohu2000000    時(shí)間: 2011-02-17 01:30
標(biāo)題: 【原創(chuàng)】C++ 基礎(chǔ)考考自己,看程序?qū)懗鲚敵?br />class NoVirtualClass
{
public:
    NoVirtualClass()
    {
       std::cout << " NoVirtualClass " << endl;
    }

    ~NoVirtualClass()
    {
       std::cout << " ~NoVirtualClass " << endl;
    }
};

class VirtualClass
{
public:
    VirtualClass()
    {
       std::cout << " VirtualClass " << endl;
    }

    ~VirtualClass()
    {
       std::cout << " ~VirtualClass " << endl;
    }
};

class subClass: public NoVirtualClass, virtual public VirtualClass
{
public:
    subClass()
    {
        std::cout << " subClass" << endl;
    }
   
    ~subClass()
    {
        std::cout << " ~subClass" << endl;
    }
};

class A
{
public:
   A()
   {
     std::cout << "A" << endl;
   }

   ~A()
   {
     std::cout << "~A" << endl;
   }

};

class C
{
public:
   C()
   {
     std::cout << "C" << endl;
   }

   ~C()
   {
     std::cout << "~C" << endl;
   }

};


class B: public A
{
public:
   B()
   {
     std::cout << "B" << endl;
   }

   ~B()
   {
     std::cout << "~B" << endl;
   }

private:

   C c;

};


struct stA
{
    stA()
    {
       cout << "stA" << endl;
    }
};


struct stB : stA
{
    stB()
    {
       cout << "stB" << endl;
    }
};

struct stC
{
    stC()
    {
       cout << "stC" << endl;
    }
};


struct stD: stB
{
    stD()
    {
       cout << "stD" << endl;
    }

};

struct stE
{
    struct stA a;
    struct stC c;
    struct stD d;
   
   
    stE()
    {
       cout << "stE" << endl;
    }

};

void funRec(int i)
{
   if(i < 5)
   {
     funRec(++i);
   }
   
    cout << " " << i ;

    return;
}


int main(void)
{
    subClass sub;

    volatile char *pvch = new volatile char[10];
    delete pvch;

    cout << endl;

    B b;

    cout << endl;

    struct stE e;

    cout << endl;

    funRec(1);

    cout << endl;
    cout << endl;




    return 0;
}




Output:

  VirtualClass
NoVirtualClass
subClass

A
C
B

stA
stC
stA
stB
stD
stE

5 5 4 3 2

~B
~C
~A
~subClass
~NoVirtualClass
~VirtualClass


劉峰六點(diǎn)評(píng):

(1) 如果有多個(gè)父類,其中有虛繼承的情況下,不管初始化列表的順序如何,都會(huì)先初始化虛繼承的基類,在初始化非虛繼承的基類
(2)  如果有類中含有類成員,那么順序是(1) 基類 (2) 子類類成員 (3)子類

(3)  如果有遞歸調(diào)用,函數(shù)的局部變量不會(huì)隨遞歸調(diào)用的對(duì)局部變量的改變而改變,當(dāng)時(shí)是幾就是幾
作者: wb112200    時(shí)間: 2011-02-17 12:04
{:3_183:} 總結(jié)的不錯(cuò) 贊一個(gè)
作者: 雨過(guò)白鷺洲    時(shí)間: 2011-02-17 13:08
不喜歡玩基礎(chǔ)概念




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2