C C 結構體過渡到類

2021-09-19 05:07:56 字數 3092 閱讀 2948

①物件能提供服務(功能函式)

②建立物件,確定輸入、輸出引數,銷毀物件

建立物件:

//定義結構體

struct resultset

//建立物件

resultset* creat()

銷毀物件

void destory(resultset* obj)

①避免外部隨意呼叫,破壞資料內部的完整性

②使用函式介面會增加自由度(這一點怎麼理解?)

#include #include class rect

// 面積

int area()

// 周長

int perimeter()

private:

int m_x, m_y;

int m_width, m_height;

};int main()

在public中初始化成員變數,在main中傳入變數值

初始化成員變數函式必須傳入私有變數作為形參

所有成員變數前可加上this->(這樣更加容易理解)

有乙個類

class student

;

定義成員函式,使用this指標

#include #include class student

void setname(const char* name)

int getid()

const char* getname()

private:

int id;

char name[32];

};int main()

設定字串陣列時,傳入形參為const char* name,獲取字串陣列時,函式定義為const char* getname()

// 判斷p是否在矩形中

bool contain(const point& p)

private:

int m_x, m_y;

int m_width, m_height;

};int main()

else

return 0;

}傳入引數的格式const point& p(const 需要傳入的變數對應的類名& 類的重新命名)

①怎麼把16進製制轉化為10進製:每乙個字元先轉化為對應的10進製數(字元減字元的方法),將將兩位數通過16進製制的方式計算出來

②怎麼將陣列中的16進製制數轉化為字串:通過sprintf函式將對應位元組格式化輸出為字串,並給字串末尾新增0

#include #include // 網絡卡的實體地址

// 如5c-26-0a-86-7b-4a, 或5c:26:0a:86:7b:4a

class macaddress

} return 0;

} void tostring(char* output)

output[offset-1] = 0;

}private:

// 十六進製制的字元 轉成 數字

unsigned char hextoint(char c)

public:

unsigned char data[6];

};int main()

全域性唯一識別符號(guid,globally unique identifier)是長度為16位元組(128位)的識別符號,用文字表示為 「******xx-***x-***x-***x-************」 形式。

例如, 6f9619ff-8b86-d011-b42d-00c04fc964ff

試完成乙個類 afguid,並提示相應的轉換功能。

class afguid

afguid(const char* strvalue)

unsigned char* buffer()

int size()

// 格式化為標準格式的字串,存在output裡

void tostring(char* output)

// 解析乙個標準字串,得到16位元組,儲存到成員變數data裡

void from(const char* strvalue)

};

該類可以像以下方式使用

int main()

#include #include // 形如 6f9619ff-8b86-d011-b42d-00c04fc964ff

class afguid

afguid(const char* strvalue)

unsigned char* buffer()

int size()

void tostring(char* output)

void from(const char* strvalue) }

private:

// 將若干位元組格式化為16進製制字串, 追加在output後面

void format(char* output, const unsigned char* buf, int n)

// 將16進製制字串轉成位元組

void parse(const char* str, int n, unsigned char* output)

unsigned char v1 = hextoint(str[i]);

unsigned char v2 = hextoint(str[i+1]);

output[k] = v1 * 16 + v2;

k++;

i+=2;

} }};int main()

C C 中結構體與類

先來說說c和c 中結構體的不同 a c語言中的結構體不能為空,否則會報錯 1 d myproject visual studio 2013 projects myc main.c 71 error c2016 c 要求乙個結構或聯合至少有乙個成員 b c語言中的結構體只涉及到資料結構,而不涉及到演算...

C C 類和結構體的差別

c c 結構體的區別 c中的結構體和c 中結構體的不同之處 在c中的結構體只能自定義資料型別,結構體中不允許有函式,而c 中的結構體可以加入成員函式。c 中的結構體和類的異同 一 相同之處 結構體中可以包含函式 也可以定義public private protected資料成員 定義了結構體之後,可...

C C 類和結構體的區別

在c 中,結構體是一種特殊形態的類。類中的非static成員函式有this指標,類的關鍵字class能作為template模板的關鍵字 即template class a 而struct不可以。c 中,不使用結構體絲毫不會影響程式的表達能力。c 之所以要引入結構體,是為了保持和c程式的相容性。但有時...