C 類的初探 擴充套件了的結構體

2021-08-25 16:54:46 字數 1305 閱讀 7272

#include using namespace std;

const int max_len = 1000; //棧的最大容量

const int empty = -1;

const int full = max_len - 1;

struct chstack

void push(char c)

char pop()

char top()

bool empty()

bool full()

};//實現字串逆序輸出,當然,是殺雞用牛刀

//這下面是****u.cpp

int main()

; cout << str << endl;

chstack s;

s.clear(); //對s進行clear操作

int i = 0;

while (str[i] && !s.full())

s.push(str[i++]);

while (!s.empty())

cout << s.pop();

cout << endl;

system("pause");

}

進行優化的理由:對本菜雞而言,指標是原罪。

其次,其中成員函式可以在類內部定義,也可以在類外定義,如果在類外定義的話,函式名前要加類的名字和作用域符::,表示這個函式是屬於這個類裡面的(當然不同於全域性函式)。

比如:  void chstack::clear()

提一句,在類內部定義的函式預設為內聯inline函式。如果想在類外定義內聯inline函式,需要顯示地呈現關鍵字inline。

c++通過限定成員的訪問許可權來設定邊界,實現資訊隱藏。訪問限定符就是做這麼乙個事的,關鍵字public、private和protected被稱為訪問限定符,在類的定義中使用,一般語法如下:

struct 類名

如果沒有指定訪問限定符,都預設是public。

public成員在程式的任何函式或者類中都可以被訪問 。public用於說明類介面中的成員,客戶程式通過public成員可以操控該型別的物件;private成員之訥訥感狗由類自己的成員函式或友元訪問,需要隱藏資訊的話應宣告為private;protected成員訪問許可權介於上述二者之間,主要用於繼承當中,這個還是後話。

我們在定義的時候,一般先寫public再寫private、protected。

在清華的教材中,編者建議,應該盡可能限制類成員的訪問性,一般而言,多隱藏比少隱藏好。(有待實踐考證)

C結構體 C 結構體 和 C 類的區別

c結構體 c 結構體基本相同,c 類主要是方法的實現。結構體是資料型別的集合 類是資料型別加方法的集合,基本如此,更注重方法。1.c的結構體和c 結構體的區別 1 c的結構體內不允許有函式存在,c 允許有內部成員函式,且允許該函式是虛函式。所以c的結構體是沒有建構函式 析構函式 和this指標的。2...

C語言結構體 C 結構體和C 類的解析

1.c的結構體和c 結構體的區別 1.1 c的結構體內不允許有函式存在,c 允許有內部成員函式,且允許該函式是虛函式。所以c的結構體是沒有建構函式 析構函式 和this指標的。1.2 c的結構體對內部成員變數的訪問許可權只能是public,而c 允許public,protected,private三...

GNU對C語言的擴充套件 結構體

在閱讀gnu linux核心 時,我 們會遇到一種特殊的結構初始化方式。該方式是某些c教材 如譚二版 k r二版 中沒有介紹過的。這種方式稱為指定初始化 designated initializer 下面我們看乙個例子,linux 2.6.x drivers usb storage usb.c中有這...