剛看到論壇裏在討論題目中的內容,連接:http://bbs.csdn.net/topics/390113751c++
之前倒也沒認真想過這個問題,看了那個帖子後總結了下。函數
1. c中沒有類的概念,因此天然沒有構造、析構函數、成員函數,只有數據測試
而在c++中能夠當成類來使用.net
C++ supports a second keyword, struct, that can be used to define class types. The struct keywords is inherited from C.
If we define a class using the class keyword, then any members defined before the first access label are implicitly private; if we use the struct keyword, then those members are public. Whether we define a class using the class keyword or the struct keyword affects only the default initial access level.指針
2. 在c中不能被繼承code
而在c++中能夠繼承
3. 也有指出函數指針的使用ci
#include <stdio.h> //幾個用於測試的函數 int max(int a, int b) { return a > b ? a : b; } int min(int a, int b) { return a < b ? a : b; } //結構體 struct func { int (*max)(int, int);//函數指針 int (*min)(int, int); }; typedef struct func func; //添加別名 void init(func *data) { data->max = max;//初始化函數指針 data->min = min; } int main() { int a, b; func test; init(&test); //初始化,你能夠說它是構造函數 a = test.max(100, 215); b = test.min(64, 42); printf("result:\nmax: %d\nmin: %d\n", a, b); return 0; }
上面這段代碼最好寫成.c文件get
可是函數指針的使用對結構體而言成員不是函數,仍是數據成員,相似於int *p。it
以上是根據最上面貼的討論總結的,歡迎留言。
經一同事的提醒,題目也能夠理解成c的結構體跟c++的類之間的區別,哈哈