c/c++ -->對象和類

來源:互聯網
上載者:User

標籤:head   class關鍵字   標識   world   span   正方形   log   重載   資料   

1、類基礎 1.1 基本概念

類是由資料結構和方法組成的,方法就是對資料結構進行處理。

類由.h檔案和.cpp檔案組成,.h檔案中表明該類的基本介面,.cpp檔案實現具體的方法。

通過類可以建立具體的對象,通過對象來調用方法。

 

比如:求正方形的面積。

其中,"正方形"就是一個類,正方形的邊長"a"就是資料,面積"S = a * a"就是方法。

而"正方形A的邊長為5mm"就是代表一個對象的資料為多少,調用方法即可求出面積為25mm2。

1.2 一個類的基本組成部分
#ifndef  __HEAD_H__#define __HEAD_H__//使用class關鍵字,"Stock"為類名,一般來說類名首字母大寫class Stock{//"private"標識私人類成員,外部不可訪問,達到資料隱藏的目的private:    long val;    void set_num();//"public"標識公用類成員,外部可訪問public://建構函式,建立對象時預設調用    Stock();//解構函式,釋放對象時預設調用    ~Stock();    void show();};#endif

 

 

類雖然是資料隱藏,但還是將內部資料也一併寫在了類結構裡。這是因為每建立對象時,都會建立私人資料,各個對象使用各自的資料,共用公用的方法

實作類別成員函數如下所示:

//head.cpp#include "head.h"//使用"函數返回 類名::函數名()"的方式實現一般函數void Stock::show(){}void Stock::set_num(){}//使用"類名::類名()"的方式實現建構函式Stock::Stock(){    val = 0;}//使用"類名::~類名()"的方式實現解構函式Stock::~Stock(){    }

 

 

類的使用如下所示:

//use.cpp#include "head.h"int main(){    Stock use_class;    use_class.show();  return 0;  }

 

1.3需要注意的幾點

1)、當建構函式具有參數時,需要在建立對象時為其指定參數值。

//假設建構函式聲明如下Stock(const string & co, long n, double pr);//則在建立對象時有如下使用幾種方式//此種方式,編譯器可能建立一個臨時對象,給food賦值後,又刪除該臨時對象Stock food = Stock("World Cabbage", 250, 1.25);//也可以使用建構函式給對象賦新值,這種方式一定會建立臨時對象food = Stock("Nifty Foods", 50, 1.25);Stock food("World Cabbage", 250, 1.25);Stock *pfood = new Stock("World Cabbage", 250, 1.25);Stock food = {"World Cabbage", 250, 1.25} //c++11Stock food {"World Cabbage", 250, 1.25} //c++11Stock *pfood = new Stock{"World Cabbage", 250, 1.25} //c++11

 

當前也可以給建構函式所有參數預設值或者利用函數重載來避免建立對象時顯示的調用建構函式。

2)、只要類方法不修改調用對象,就應該將其聲明為const成員函數。

//聲明void show() const;//定義void Stock::show() const{}

 

3)、如果建構函式使用了new,則解構函式必須提供delete。

 

c/c++ -->對象和類

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.