1. 程式人生 > >【6】學習C++之類的實例化及訪問

【6】學習C++之類的實例化及訪問

成員 另一個 new 兩種 code oid 用處 int evo

類就像一張圖紙,如果不去實例化,制造出相應的零件,用處就不會那麽大。

實例化類有兩種,一個是從棧中實例化對象:

class TV
{
public:
    char name[20];
    int type;

    void changeVol();
    void power();
}

int main(void)
{
    TV tv;    //實例化一個對象
    TV tv[20];//實例化一組對象

    return 0;
}

另一個是從堆中實例化對象:

class TV
{
public:
    char name[20
]; int type; void changeVol(); void power(); } int main(void) { TV *p = new TV(); //實例化一個對象 TV *q = new TV[20]; //實例化一組對象 delete p; delete []q; return 0; }

這兩種實例化後的對象的訪問方式也是有所不同的,如果是從棧中實例化的對象的成員,訪問用點(.)即可:

int main(void)
{
    TV tv;
    tv.type 
= 0; tv.changeVol(); return 0; }

如果是從堆中實例化的對象的成員,訪問用箭頭(->)即可:

int main(void)
{
    TV *p = new TV();
    p ->type = 0;
    p ->changeVol();
    delete p;
    p = NULL;
    return 0;
}

如果是從堆中實例化的一組對象的成員,則是額外需要for循環:

int main(void)
{
    TV *p = new TV[5];
    for
(int i = 0;i<5;i++) { p ->type = 0; p ->changeVol(); } delete []p; p = NULL; return 0; }

【6】學習C++之類的實例化及訪問