• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • c++面向對象的編程入門篇--類(class)

    發表于:2007-07-04來源:作者:點擊數: 標簽:
    上兩篇內容我們著重說了結構體相關知識的操作。 以后的內容我們將逐步完全以c++作為主體了,這也以為著我們的教程正式進入 面向對象 的編程了。 前面的教程我已經再三說明,結構體的掌握非常重要,重要在哪里呢?重要在結構體和類有相同的特性,但又有很大的
    上兩篇內容我們著重說了結構體相關知識的操作。

    以后的內容我們將逐步完全以c++作為主體了,這也以為著我們的教程正式進入面向對象的編程了。

    前面的教程我已經再三說明,結構體的掌握非常重要,重要在哪里呢?重要在結構體和類有相同的特性,但又有很大的區別,類是構成面向對象編程的基礎,但它是和結構體有著機器密切的關系。

    我們在c語言中創建一個結構體我們使用如下方法:


    //程序作者:管寧
    //站點:www.cndev-lab.com
    //所有稿件均有版權,如要轉載,請務必著名出處和作者

    struct test
    {
    private:
    int number;
    public:
    float socre;
    };


    類的創建方式和結構體幾乎一樣看如下的代碼:


    //程序作者:管寧
    //站點:www.cndev-lab.com
    //所有稿件均有版權,如要轉載,請務必著名出處和作者

    class test
    {
    private:
    int number;
    public:
    float socre;
    public:
    int rp()
    {
    return number;
    }
    void setnum(int a)
    {
    number=a;
    }
    };



    但是大家注意到沒有,標準c中是不允許在結構體中聲明函數的,但c++中的類可以,這一點就和c有了本質的區別,很好的體現了c++面向對象的特點!

    過去的c語言是一種非面向對象的語言

    他的特性是

    程序=算法+數據結構

    但c++的特性是

    對象=算法+數據結構
    程序=對象+對象+對象+對象+........

    所以根據這一特性,我們在定義一個自己定義的結構體變量的時候,這個變量就應該是叫做對象或者叫實例

    例如

    test a;
    那么a就是test結構的一個對象(實例)

    test結構體內的成員可以叫做是分量,例如:

    a.socre=10.1f;
    那么number就是test結構的對象a的分量(或者叫數據成員,或者叫屬性)score;

    在c語言中結構體中的各成員他們的默認存儲控制是public 而 c++中類的默認存儲控制是private,所以在類中的成員如果需要外部掉用一定要加上關鍵字public聲明成公有類型,這一特性同樣使用于類中的成員函數,函數的操作方式和普通函數差別并不大

    例如上面的例子中的rp()成員函數,我們如故有如下定義

    test a;
    的話,調用rp()就應該寫成

    a.rp();

    成員函數的調用和普通成員變量的調用方式一致都采用.的操作符。

    這一小節為了鞏固聯系我給出一個完整的例子。

    如下(重要和特殊的地方都有詳細的注解):


    //程序作者:管寧
    //站點:www.cndev-lab.com
    //所有稿件均有版權,如要轉載,請務必著名出處和作者

    #include <iostream>
    using namespace std;
    class test
    {
    private://私有成員類外不能夠直接訪問
    int number;
    public://共有成員類外能夠直接訪問
    float socre;
    public:
    int rp()
    {
    return number;
    }
    void setnum(int a)
    {
    number=a;
    }
    };

    void main()
    {
    test a;
    //a.number=10;//錯誤的,私有成員不能外部訪問
    a.socre=99.9f;
    cout<<a.socre<<endl;//公有成員可以外部訪問
    a.setnum(100);//通過公有成員函數setnum()間接對私有成員number進行賦值操作
    cout<<a.rp();//間接返回私有成員number的值
    cin.get();
    }

     

    好了,介紹了在類內部定義成員函數(方法)的方法,下面我們要介紹一下域區分符(::)的作用了。

    下面我們來看一個例子,利用這個例子中我們要說明兩個重要問題:


    //程序作者:管寧
    //站點:www.cndev-lab.com
    //所有稿件均有版權,如要轉載,請務必著名出處和作者

    #include <iostream>
    using namespace std;
    int pp=0;
    class test
    {
    private:
    int number;
    public:
    float socre;
    int pp;
    public:
    void rp();
    };
    void test::rp()//在外部利用域區分符定義test類的成員函數
    {
    ::pp=11;//變量名前加域區分符給全局變量pp賦值
    pp=100;//設置結構體變量
    }

    void main()
    {
    test a;
    test b;
    a.rp();
    cout<<pp<<endl;
    cout<<a.pp<<endl;

    cin.get();
    }

    本新聞共3頁,當前在第1頁  1  2  3  

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>