真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

C++class

C++的class和其他的高級語言如C#/Java有些不一樣。這是C++面向?qū)ο蟮暮诵摹?/p>

創(chuàng)新互聯(lián)建站服務(wù)項(xiàng)目包括嘉蔭網(wǎng)站建設(shè)、嘉蔭網(wǎng)站制作、嘉蔭網(wǎng)頁制作以及嘉蔭網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,嘉蔭網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到嘉蔭省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

一點(diǎn)一點(diǎn)來: 

一 , 創(chuàng)建class

#include 
using namespace std;
class My_First_Class
{
    public:
    int a;
};
int main()
{
    My_First_Class c;
    c.a = 2;
    cout << c.a << endl;
    return 0;
}

重點(diǎn):

①:創(chuàng)建類 , 需要用關(guān)鍵字class。

②:class也是一種數(shù)據(jù)類型,{}外面需要以;來結(jié)束。

注意點(diǎn):

①:int a 不能被初始化 , 原因:class沒被初始化之前是沒有空間分配的,當(dāng)然其所有的成員也是沒有空間的。

C++ class

②:關(guān)于訪問修飾符在C++中有3中 private , protected , public

    1, 在class中默認(rèn)為private , 在struct中默認(rèn)為public

    2, class中,訪問修飾符可以有多個(gè), 其作用范圍為 : 其位置到下一個(gè)訪問修飾符的位置(如果沒有下一個(gè)訪問修飾符則是到class結(jié)束位置既是 “}”),如下圖:

C++ class

③:My_First_Class c; 這種初始化是把My_First_Class類對象c放在了棧區(qū)。其實(shí)可以將其放入堆去,其方案是利用指針。代碼如下:

#include 
using namespace std;
class My_First_Class
{
    public:
        int a;
    private:
        int c;
};
int main()
{
    //My_First_Class c;
    //a = 2;
    My_First_Class *c = new My_First_Class;
    c->a = 3;
    cout << c->a << endl;
    delete c;
    return 0;
}

   其結(jié)果如下圖:

C++ class

到目前我們會(huì)發(fā)現(xiàn)一個(gè)很基礎(chǔ)的問題 , 成員的初始化(如果等待調(diào)用者自己一個(gè)一個(gè)用代碼實(shí)現(xiàn)初始化的話 ,很有可能會(huì)漏掉),當(dāng)然在C#/Java等高級語言中 , 這個(gè)就不成問題了。

在C++中,提供了構(gòu)造函數(shù)可以提供初始化的

#include 
using namespace std;
class My_First_Class
{
    public:
        int a;
    My_First_Class()
    {
        a = 1;
    }
    private:
        int c;
};
int main()
{
    My_First_Class c;
    cout << c.a << endl;
    /*
    My_First_Class *c = new My_First_Class;
    c->a = 3;
    cout << c->a << endl;
    delete c;
    */
    return 0;
}

注意:

①:構(gòu)造函數(shù)和C#/Java一樣 , name使用class的名稱 , 而且沒有返回值

②:構(gòu)造函數(shù)默認(rèn)應(yīng)該放在public之下,不然會(huì)報(bào)錯(cuò)。

③:構(gòu)造函數(shù)必須要在需要初始化成員的后面創(chuàng)建,如要初始化a(int) , 必須在int a;的后面創(chuàng)建。

初始化列表:

#include 
using namespace std;
class My_First_Class
{
    public:
        int a;
    private:
        int c;
    public:
    My_First_Class():a(1),c(2)
    {
    }
};
int main()
{
    My_First_Class c;
    cout << c.a << endl;
    /*
    My_First_Class *c = new My_First_Class;
    c->a = 3;
    cout << c->a << endl;
    delete c;
    */
    return 0;
}

注意:

①:My_First_Class():a(1),c(2) 賦值的順序是a , c的聲明的順序:

C++ class

和在構(gòu)造函數(shù)中:后面寫的順序無關(guān):

如下面的寫法,就不會(huì)得到預(yù)期的值:

#include 
using namespace std;
class My_First_Class
{
    public:
        int a;
        int m;
    My_First_Class():m(2),a(m)
    {
    }
};
int main()
{
    My_First_Class c;
    cout << c.a << endl;
    cout << c.m << endl;
    /*
    My_First_Class *c = new My_First_Class;
    c->a = 3;
    cout << c->a << endl;
    delete c;
    */
    return 0;
}

結(jié)果為:

C++ class

因?yàn)橘x值的順序是先a后m(a在m前進(jìn)行了聲明)

當(dāng)然 , 構(gòu)造函數(shù)也可以是有參的和C#/Java一樣 , 這里就不講了

二:類內(nèi)聲明 , 類外定義

#include 
using namespace std;
class My_First_Class
{
    public:
        int a;
        int m;
    My_First_Class():m(2),a(1)
    {
    }
    int sum();
};
int My_First_Class::sum()
{
    return a + m;
}
int main()
{
    My_First_Class c;
    int sum = c.sum();
    cout << c.a << endl;
    cout << sum << endl;
    /*
    My_First_Class *c = new My_First_Class;
    c->a = 3;
    cout << c->a << endl;
    delete c;
    */
    return 0;
}

運(yùn)行結(jié)果 :

C++ class

當(dāng)然 , 這種只是演示(實(shí)際開發(fā)中不這么搞) 。 實(shí)際開發(fā)中 , 將聲明寫在都文件中 , 將實(shí)現(xiàn)寫在源文件中:

定義一個(gè)頭文件:

C++ class

實(shí)現(xiàn):

#include 
using namespace std;
#include "HeadOne.h"

My_First_Class::My_First_Class()
{
    a = 10;
}
int main()
{
    My_First_Class c;
    cout << c.a << endl;
    /*
    My_First_Class *c = new My_First_Class;
    c->a = 3;
    cout << c->a << endl;
    delete c;
    */
    return 0;
}

結(jié)果:

C++ class


本文標(biāo)題:C++class
網(wǎng)站網(wǎng)址:http://weahome.cn/article/iieidg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部