這裡主要討論的是區別,而不是c++中有的,而c語言中沒有的東西。c++比c語言多了很多東西,最重要的當屬類(物件導向程式設計)和模板(泛型程式設計),基於泛型程式設計還引出了元程式設計(metaprogramming)等等。這裡討**共部分但是不一樣的部分
函式過載是c++支援的,c不支援
c++的函式過載在類繼承的時候不起作用
而c語言中也可以用巨集來改變函式的定義#include
using
namespace
std;
class
base
virtual
void
()};
class
derive
:public
base
};int
main
()
c++支援預設引數,而c不支援預設引數#include
double
sqr(x)
#define
sqr(x)
x*x //這兩行不能互換位置,否則expanded from macro
intmain
()
在c語言中不加void則表示引數是任意個數,而c++中void和空是乙個意思#include
intpower
(intm,
intn=2
)return
result
;}
c++結構體賦值和c語言的區別#include
//空表示任意引數
void
greet
()//表示不可以傳引數
void
test
(void
)int
main
()
c++結構體的成員預設訪問屬性#include
using
namespace
std;
struct
animal
};//正常情況情況下可以這樣賦值,但是當函式是virtual的時候會失敗
//少了虛函式位址
intmain
()' from '
' to 'animal'
animala =
;cout
<<
endl
;}
#include
using
namespace
std;
struct
animal
};//這裡預設public,所以可以省略
struct
dog:
animal
;int
main
()
然而實際上不論是gcc還是vc都支援c在for迴圈中定義變數,未來標準可能會改變#include
intmain
()}
//operator new有三種形式:
//throwing
void
*operator
new(
std::
size_t
size
)throw
(std
::bad_alloc
);//nothrow
void
*operator
new(
std::
size_t
size
,const
std::
nothrow_t
¬hrow_value
)throw
();//placement
void
*operator
new(
std::
size_t
size
,void
*ptr
)throw
();
C 和C的區別
c 與c語言的關係 1 c 繼承了所有的c特性 2 c 在c的基礎上提供了更多更好的語法和特性 3 c 的設計目標是執行效率和開發效率的統一 c 對c語言的加強 1 c 中所有的變數都可以再需要使用時再定義 如 for迴圈等中需要的變數 3 c中可以定義多個同名的全域性變數 c 不可以 4 cons...
C 和C的區別
c c 的聯絡 c c 區別 小知識點補充擴充套件 free 而new開闢物件陣列用的是new size 釋放的的時候是 delete 5 返回值問題,malloc開闢成功返回void 需要強轉,失敗返回null,new 成功返回物件指標,失敗丟擲異常 這就可能會提到c 的new handler機 ...
C和C 的區別
c語言是面向過程的,c 是物件導向的,而c和c 的區別也就是面向過程和物件導向的區別。面向過程 op 和物件導向 oo 其實是相輔相成的,面向過程是以 事件 為中心的,分析完成這個事件需要做的工作,最後用函式來實現,並按照順序呼叫。而物件導向是以 物件 為中心,建立物件的目的不是為了完成某個工作,而...