當前位置:首頁 » 編程語言 » c語言的class

c語言的class

發布時間: 2025-03-02 23:17:48

1. C語言中的class的應用怎麼用

C語言里沒有class的概念,你可以寫

int class = 0;
而不會有任何報錯。
C++是基於C的一種面向對象擴展,它在C原有結構體(struct)的基礎上,擴充了struct的功能(增加了成員函數,以及訪問控制,繼承等),並增加了class這一新定義。實際上class和struct的唯一區別就是:struct中的默認訪問控制許可權是public,而class的默認訪問控制許可權是private。
你可以定義一個類C的結構體
struct RecTangle{
int width; int height;
int pos_x; int pos_y;
};

給他添加一些成員函數

struct RecTangle{
int width; int height;
int pos_x; int pos_y;
int Right(); // get right
int Bottom(); // get bottom
int Left(); // get left
int Top(); // get top
};

為了隱藏結構體內的成員,添加訪問控制標識:
struct RecTangle{
private:
int width; int height;
int pos_x; int pos_y;
public:
int Right(); // get right
int Bottom(); // get bottom
int Left(); // get left
int Top(); // get top
};

如果用class來代替struct,則需要添加訪問控制標識.
比如用class來定義類C結構體
class RecTangle{
public:
int width; int height;
int pos_x; int pos_y;
};

2. 新手關於C語言中類(Classes)的問題,求高手!

#include<iostream>
using namespace std;
class X
{
int x; //定義類X的私有實例成員變數x
public:
X() {x=0;} //默認構造函數(無參數),將x初始化為0
X(int xx) {x=xx;} //重載的構造函數,將x初始化為xx
//虛函數,輸出x的值,子類可以覆蓋(重寫)虛函數,從而實現多態
virtual void prt() {cout<<x;}
};
//類Y公共繼承自類X,即Y是X的子類
class Y:public X
{
int y; //定義類Y的私有實例成員變數y
public:
//以下兩行都是類Y的構造函數,它們都隱式調用了父類X
//的默認構造函數,以初始化父類的實例成員變數x(都初始化成0了)
Y() {y=0;}
Y(int yy) {y=yy;}
//這是覆蓋(重寫)父類的虛函數prt
void prt() {cout<<y;}
};
int main()
{
//x(10)會調用帶一個參數的構造函數X(int xx),創建一個類X的對象x,
//x的成員變數x初始化為10
//z會調用默認構造函數X(),創建一個類X的對象z,
//z的成員變數x初始化為0
//y(11)會調用帶一個參數的構造函數Y(int yy)(Y的),創建一個類Y的對象y,
//y的成員變數y初始化為11,同時通過調用父類X的默認構造函數,
//將父類的成員變數x初始化為0
X x(10),z;Y y(11);

//將x賦給z,調用z的成員函數prt,輸出顯示10
z=x;z.prt();
//將y賦給z,調用z的成員函數prt,輸出顯示0,
//因為調用的是父類X的prt,顯示的是對象z的成員變數x的值
z=y;z.prt();
//以下新加的會輸出顯示11,
//因為調用的是子類Y的prt,顯示的是對象y的成員變數y的值
y.prt();
cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}

3. C++的類和C裡面的struct有什麼區別

C++中的class和C語言中的struct在使用上有顯著的區別。首先,class中的成員默認訪問許可權是私有的,而struct中的成員默認訪問許可權是公有的。這意味著在class定義中,除非特別聲明為公有或保護,否則成員變數和方法默認是私有的,只有class內部可以訪問它們。而在struct中,除非特別聲明為私有或保護,否則成員默認可以被外部訪問。

其次,class和struct在繼承方面的默認方式也有所不同。class的默認繼承方式是私有繼承,這意味著子類只能訪問基類中公有的成員,而struct的默認繼承方式是公有繼承,這樣子類可以訪問基類中的所有成員,包括私有的。

此外,C++中的類還支持虛函數和虛函數表,這是C語言的struct所不具備的。虛函數和虛函數表使得類可以實現多態性,這是面向對象編程中一個非常重要的特性。虛函數表是一種特殊的數組,用於存儲指向虛函數的指針,它使得通過基類指針或引用可以調用派生類的虛函數。

總之,雖然C++中的class和C語言中的struct都用於封裝數據,但它們在默認訪問許可權、默認繼承方式以及面向對象特性支持等方面存在差異。對於更深入的理解,建議查閱現代編譯原理的相關資料。

熱點內容
代碼塊編程 發布:2025-03-03 17:22:06 瀏覽:327
計算幾何c語言描述 發布:2025-03-03 17:07:25 瀏覽:273
哈佛黑標是什麼配置 發布:2025-03-03 16:54:30 瀏覽:387
武林志怎麼改配置 發布:2025-03-03 16:49:53 瀏覽:12
編程珠璣第二版 發布:2025-03-03 16:24:50 瀏覽:60
國網統一許可權密碼是多少 發布:2025-03-03 16:24:07 瀏覽:130
如何打開通訊錄的密碼 發布:2025-03-03 15:53:13 瀏覽:63
c語言中a2 發布:2025-03-03 15:25:42 瀏覽:556
黃箱演算法 發布:2025-03-03 15:20:46 瀏覽:768
php的ppt 發布:2025-03-03 15:20:42 瀏覽:43