1. 程式人生 > >C++的類的宣告及成員變數和成員函式

C++的類的宣告及成員變數和成員函式

C++通過類及相關的封裝、繼承、多型和虛擬函式機制支援面向物件的程式設計和開發。

類是一類事物的抽象,它封裝了描述這類事物的共同屬性和行為的資料結構和方法。

C++中類的宣告(也又稱)式如下:

class 類名
{
    訪問範圍說明符:
        成員變數1;
        成員變數2;
        ...
        成員函式1宣告;
        成員函式1定義;
        ...
    訪問範圍說明符:
        更多成員變數;
        更多成員函式宣告或定義;
        ...
};

成員函式1型別 類名::成員函式1(引數列表)
{

}

成員變數是在類中宣告的變數。同樣地,成員函式是指在類中宣告的函式,如上類的宣告式所示,成員函式可以在類的宣告體中定義,也可以在類的宣告體之外定義。在類的宣告體外定義的函式需要用類名和作用域運算子(類名::)限定函式所屬的類。

宣告的類是一種自定義的資料型別,可使用它來宣告和定義變數,稱為類的例項化,定義的變數稱為類的物件。例項化的過程是為物件分配記憶體空間,物件所佔記憶體空間的大小由其所有成員變數的大小之和。

在類的成員函式內部,可以直接使用類中的成員變數和成員函式,不必顯示地去引用某個物件。而類外的函式呼叫類的成員函式,要使用標準的成員訪問語法訪問,通過物件、物件指標和物件引用訪問物件的成員變數和對應的類的成員函式。以下是訪問類的成員變數和函式的三種方式:

物件名.成員名;
物件指標->成員名;
物件引用.成員名
/*****************************************
 * class_member_function.cpp             *
 *                                       *
 * C++的類定義和成員函式                 *
 *****************************************/

class CRectangle
{
private:
  int w;
public:
  int h;
  void
Init(int _w, int _h) { w = _w; h = _h; } int Area(); int Perimeter() { return 2 * (w + h); } }; int CRectangle::Area() { return w * h; } #include <iostream> int main() { CRectangle r; r.Init(10,20); std::cout<<"Its height is "<<r.h<<std::endl; std::cout<<"Its area is "<<r.Area()<<std::endl; std::cout<<"Its perimeter is "<<r.Perimeter()<<std::endl; return 0; }

類的宣告和成員函式使用

參考文獻

相關推薦

C++的宣告成員變數成員函式

C++通過類及相關的封裝、繼承、多型和虛擬函式機制支援面向物件的程式設計和開發。 類是一類事物的抽象,它封裝了描述這類事物的共同屬性和行為的資料結構和方法。 C++中類的宣告(也又稱)式如下: class 類名 { 訪問範圍說明符:

C++----成員變數成員函式的儲存方式

類的成員變數和成員函式在類的儲存方式為分開儲存。 即只有非靜態變數儲存在類中,其餘的所有成員均不在類中。 實驗如下: exp1: class Person1 { }; void test01() { cout << "size of (空類Person)

C++物件成員變數成員函式記憶體分配的問題

//類的使用//... K kTemp;  printf("%d--%d\n",&kTemp,&kTemp.k);  printf("%d--%d\n",sizeof(K),sizeof(kTemp.k));  int *i = (int*)(&kTemp);  int w = *i;

C++成員變數成員指標變數小結

指標的確有點難理解,不過它之所以存在並大範圍使用,這樣做是有一定道理的。 一、C++中的類和結構使用指標定義成員作用 1、多型的要求。 如果要使用同一介面,多型設計,那麼就一定要使用基類指標。只有指標才能在實力化後動態的判斷使用哪個方法。2、程式碼複用。有一些程式要設計

java中對中的成員變數成員方法的封裝private關鍵字

package org.westos_05_封裝和private; /*  * private:  * 私有的,不可訪問的!  * 可以修飾成員變數,也可以修飾成員方法  * 特點:被private修飾的成員只能在本類中訪問,那麼需要提供公共訪問方法  * */ class

Java反射之——Java獲取成員變數建構函式的資訊

我們無論是獲取成員變數資訊,亦或者是獲取建構函式的資訊,都必須獲取類的類型別,然後通過類的類型別進行對成員變數和建構函式的操作。 注:成員變數和建構函式也都是物件,前者是Feild的物件,在java.lang.reflec.Feild中封裝了對成員變數的資訊。後者是Constructor的物件,

使用java反射操作的建構函式成員變數成員方法

在java.lang.reflect包中有三個類Field,Method,Constructor.分別描述域,方法,構造器。參考API,關於這三個類的說明。 在執行時使用反射分析物件,如果訪問的是私有域或是私有方法,私有建構函式,會丟擲IllegalAccessExce

java中父成員變數成員方法在記憶體分配上的一些理解

先宣告,以下是個人自己的理解(我也怕誤人子弟),如有錯誤請指出一起學習交流。先上程式碼:package myTest; class A { int num = 5; A() { show(); } public void show() { System.

Java中成員變數成員方法的使用

package g.practise_myself; /*作者:陳天祥   時間:2016.10.7   功能:成員變數和成員方法的使用   */ import java.io.*; public class Object  {public static void main

靜態成員變數成員函式

  若將成員變數宣告為static,則為靜態成員變數,與一般的成員變數不同,無論建立多少物件,都只有一個靜態成員變數的拷貝,靜態成員變數屬於一個類,所有物件共享。靜態變數在編譯階段就分配了空間,物件還沒建立時就已經分配了空間,放到全域性靜態區。 靜態成員變數   注意事項:(1)最好是類內宣告,類外初始化

Python中定義“私有”成員變數成員函式

在學習Python的過程中發下,它把類(class)中所有的成員函式和成員變數都看做是"Public"的,作為C++出身的程式設計師們可能就不習慣了。 Python的官方教程中如是說:““Private” instance variables that cannot b

C++---的靜態成員變數靜態成員函式

class Person { public : Person() { } static int m_Age ; //加入static 就是靜態成員變數,會共享資料; //靜態成員變數,在類內宣告,類外進行初始化; } int Person.m_Age = 0; //類外初始化

java基礎———與物件,成員變數區域性變數,封裝關鍵字staticthis

類與物件,成員變數和區域性變數,封裝及關鍵字static和this 面向物件的思想 類與物件及其應用 物件的記憶體圖 成員變數和區域性變數的區別 匿名物件 封裝(private) this關鍵字 構造方法 物件的建立步驟

關鍵字static的作用是什麼? C++中的靜態成員變數靜態成員函式的作用

關鍵字static的作用是什麼? 本題目轉自《面試寶典》 1,函式體內static變數的作用範圍為該函式體,不同於auto變數,該變數的記憶體 只被分配一次,因此其值在下次呼叫時,仍維持上次的值; 2,在模組內的static全域性變數可以被模組內所有的函式訪問,但不能被模

MFC C++中的靜態成員變數靜態成員函式的作用

資料成員可以分靜態變數、非靜態變數兩種.  靜態成員:靜態類中的成員加入static修飾符,即是靜態成員.可以直接使用類名+靜態成員名訪問此靜態成員,因為靜態成員存在於記憶體,非靜態成員需要例項化才會分配記憶體,所以靜態成員不能訪問非靜態的成員..因為靜態成員存在於記憶體,所以非靜態成員可以直接訪問類中靜態的

C++ 兩個包含互相呼叫彼此的成員變數方法

      在編寫C++程式時,有時候我們想在一個類中呼叫另一個類中的成員變數或方法,比如:兩個類 A和B ,A包含B,一般A中呼叫B中的方法比較簡單,重點是子類B如何呼叫父類A中的成員變數或方法呢?

C++ 建構函式使用 ":成員變數(形參)" 的形式給裡面成員變數賦值,如果成員變數形參是指標,那麼需要注意的事項

我先把結論列出來: 當成員變數和形參是指標,最好不要使用:成員變數(形參)這樣的形式。因為你可以不是進行:成員變數 = 形參這個方向的賦值,你可能是執行:形參 = 成員變數這個方向的賦值。因為前提,它們都是指標嘛。 今天我遇到了這樣的一個錯誤: 下

C++靜態成員變數const常量的初始化方法

C++類靜態成員變數和const常量在定義類的時候就必須初始化,否則都會編譯出錯。 而具初始化方法為: C++類靜態成員變數初始化方法 [cpp] view plain copy  print? #include <iostream> #

C++/Java__中模板中的靜態成員變數靜態成員函式

C++: 類模板例項化的每個模板類(每個模板類指的是對於宣告時候對模板指定的型別,如List<int>,List<double>中的int,double.)都有自己的類模板靜

4、【C++】靜態成員變數/靜態成員函式/行內函數/友元函式/友元/友元成員函式

一、靜態成員     我們可以使用 static 關鍵字來把類成員定義為靜態的。當我們宣告類的成員為靜態時,這意味著無論建立多少個類的物件,靜態成員都只有一個副本。     靜態成員在類的所有物件中是共享的。如果不存在其他的初始化語句,在建立第一個物件時,所有的靜態資料都會被初始化為