在下淺見
精通c
精通c++
兩者不同
C 就是一般泛指使用 C 語言的語法通稱
如
int main(int argc, char *argv[]){
printf("Hello World...\n");
return 0;
}
或是類似這樣
string char2str(char chrs[]){
string str;
return str.assign(chrs);
}
而 C++
就大概是要求使用物件導向語法,像是使用封裝(Encapsulation)、繼承(Inheritance)、多載(Overloading)、重寫(Overriding)等概念,也就是抽象化再提升,這對於大型系統開發是很重要的觀念。
例如
封裝(Encapsulation),使用class把所有功能包起來。
class Queue{
node<T> *head;
node<T> *tail;
public:
Queue(); //建構子
~Queue(); //解構子
void push(T item); //存入
T pop(); //取出
bool isEmpty(); //空的?
int size(); //節點數
};
繼承(Inheritance)
某些基礎類(class)可以被重複使用,例如車輪類(class),可以給汽車類使用,可以給腳踏車類使用...
最簡單的方法就是用繼承
class 車輪類{
...
}
class 汽車類:public 車輪類{
...
}
class 腳踏車:public 車輪類{
...
}
多載(Overloading)
有時我們寫一個多用途的 function 時,常常會依需要而有不同個數的參數,但名稱相同,這時就要用Overloading
int aaaa(int x) {...}
int aaaa(int x,int y) {...}
int aaaa(int x,int y,int z) {...}
重寫(Overriding)
這個跟上述Overloading很像,但是參數形態卻不同
如
int bbb(int k){...}
int bbb(string str){...}