程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 類——C++面向對象編程的基石

類——C++面向對象編程的基石

編輯:C++入門知識
  結構體和類有相同的特性,但又有很大的區別,類是構成面向對象編程的基礎,但它是和結構體有著機器密切的關系。
  
  我們在c語言中創建一個結構體我們使用如下方法:
  
  
 C++ 代碼   
  //程序作者:管寧  
  //所有稿件均有版權,如要轉載,請務必聞名出處和作者 
   
  strUCt test 
  { 
  private: 
    int number; 
  public: 
    float socre; 
  };
  

  類的創建方式和結構體幾乎一樣看如下的代碼:
  
  
 C++ 代碼   
  //程序作者:管寧 
  //站點: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();
  
  成員函數的調用和普通成員變量的調用方式一致都采用.的操作符。
  
  這一小節為了鞏固聯系我給出一個完整的例子。
  
  如下(重要和非凡的地方都有具體的注解):
  
  
 C++ 代碼   
  //程序作者:管寧 
  //站點: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(); 
  }
  

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved