成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

解析C++和C的區別

開發 后端
在C的基礎上,一九八三年又由貝爾實驗室的Bjarne Strou-strup推出了C++。 C++進一步擴充和完善了C語言,成為一種面向對象的程序設計語言。下面讓我們一起來了解C++和C吧!

C語言是一種結構化語言。它層次清晰,便于按模塊化方式組織程序,易于調試和維護。在很大程度上,標準C++是標準C的超集.實際上,所有C程序也是C++程序,然而,兩者之間有少量區別.下面簡要介紹一下最重要的區別.
 

在C++中,民,局部變量可以在一個程序塊內在任何地方聲明,在C中,局部變量必須在程序塊的開始部分,即在所有"操作"語句之前聲明,請注意,C99標準中取消了這種限制.
在C中,按如下方式聲明的函數沒有對函數變元進行任何說明;
int func();
也就是說,如果沒有在函數后面的括孤內指定任何變元,這在C中就意味著對函數變元未做任何聲明,該函數可能有變元,也可能沒有變元,然而,在C++中,這樣的函數聲明意味著該函數沒有變元,也就是說,在C++中,下面這兩個函數聲明具有同樣的作用:
int func();
int func(void);

在C++中,變元列表中的void是任選的.許多C++程序員使用它們是為了表明函數沒有任何變元的,以便于他人理解程序.但是,從技術上說,void不是必須的.
 

在C++中,所有函數均必須被設計成原型,但這在C中只是一種選擇.編程經驗表明,在程序中也應該給函數采用原型設計方法.在C與C++之間還存在一個重要而又細微的差別,即字符常數在C中被自動作為整形來處理,但在C++中則不然.
 

在C中,多次聲明一個全局變量雖然不可取,但不算錯.在C++中,多次聲明同一個全局變量會引發錯誤.
 

在C中,一個標識符可以至少31個有效的組成字符.

在C++中,一個標識符的所有組成字符均是有效的.可是,從實用角度看,過長的標識符沒有太大的用處,不僅不便于記憶,而且還會增加出現打字錯誤的可能性.
在C中,在程序內部調用main()函數的情形不常見,但這種做法是容許的,在C++中,這種做法是不容許的.
在C中,無法獲得register型的地址,在C++中則可以獲得這種地址.
在C中,如果類型聲明語句中沒有指定類型名,該類型被假定成int,這種隱式轉型在C99與C++中是不允許的.

#include
using namespace std;
為什么沒有.h后綴名?

名稱iostream沒有擴展名.h,原因是是標準C++所定義的新式頭部文件之一,新式C++頭部文件不再使用.h擴展名.
第二行告訴編譯程序使用std名稱空間,名稱空間是最近才添加到C++中,一個名稱空間建立一個聲明范圍,在該范圍內可以放置各種程序元素.名稱空間用來幫助組織大型程序的結構.這條using語句通知編譯程序,程序員需要使用std名稱空間,這是整個標準C++庫聲明所使用的名稱空間.通過使用sdt名稱空間,程序可以簡化對標準庫的訪問.普通C程序僅使用C子集,不需要名稱空間語句,因為C的庫函數在默認的全局名稱空間中是可使用的.

 

類與結構體的區別:類與結構體是相互關聯的

結構是C的一部分,C++從C中繼承了結構,在語法上,類與結構十分相似,在關系上,這兩者也很接近,在C++中,結構的作用被拓寬了,進而使結構成為了類的一種替代方法.實際上,類與結構的惟一區別在于:在默認狀態下,結構的所有成員均是公有的,而類的所有成員是私有的.除此之外,類與結構是等價的,也就是說,一個結構定義了一個類的類型.
C++同時包含這兩個等價的關鍵字struct與class基于3個方面的原因.第一,加強結構的能力.在C中,結構提供了一種數據分組方法,因而讓結構包含成員函數是一個小小的改進.第二,由于類與結構是相互關聯的,所有現有C代碼到C++的移植變得更容易.第三,由于類與結構的等價性,提供兩個不同的關鍵字可以使類定義自由發展,為了保持C++與C的兼容性,結構定義必須始終受它的C定義的結束.
即使在有些地方可以使用結構來代替類,但盡量不要這么做,為了清楚起見,該用類的地方就用class關鍵字,該用C結構的地方就用struct關鍵字.

類與聯合是相互關聯的

聯合也可以用來定義類.在C++中,聯合包含成員函數,變量以及構造與析構函數.C++聯合保留了C聯合的全部特征,其中最重要的特征是所有數據元素共享內存的相同地址.與結構類似,聯合的成員在默認狀態下也是公有的,并且完全兼容于C.與結構一樣,C++中的聯合聲明定義了一種特殊的類,進而意味著保持了類的封裝原則.
 

C++的聯合有幾個必須遵守的使用限制.第一,聯合不能繼承其他任何類型的類.第二,聯合不能是基類,不能包含有虛函數成員.靜態變量不能是聯合的成員.聯合不能使用引用成員,而且不能有任何作為成員的重載賦值運算符的對象.第三,如果一個對象包含明確的構造或析構函數,該對象不能成為聯合的成員.
 

C++有一個叫做匿名聯合的特殊聯合.匿名聯合沒有類型名,也不聲明任何變量,只是告訴編譯程序它的成員變量共享一個內存地址.但是,變量本身無需要使用常規的點運算符語法即可直接引用.
 

上述聯合的使用限制也適用于匿名聯合,但下面這兩個限制除外,第一,匿名聯合所包含的元素只能是數據,不能包含成員函數,也不能包含私有或受保護元素;第二,全局匿名聯合必須聲明成靜態的.

通過本文的介紹,我們可以了解到,C是C++的基礎,C++語言和C語言在很多方面是兼容的。因此,掌握了C語言,再進一步學習C++就能以一種熟悉的語法來學習面向對象的語言,從而達到事半功倍的目的。

【編輯推薦】

  1. 給C++初學者的50個忠告
  2. 一個實用主義者的觀點:如何學習使用C++
  3. c++最基礎的20條規則
  4. 我們為什么要學C語言?
  5. C語言從入門到精通 目錄
責任編輯:于鐵 來源: CSDN博客
相關推薦

2011-07-20 17:48:07

C++

2011-07-20 17:31:12

C++

2010-02-06 14:40:50

C++初始化和賦值

2022-07-01 11:56:54

C語言C++編程語言

2020-06-17 12:22:44

C覆蓋重載

2011-04-06 08:57:07

C++java多態

2010-01-28 15:22:12

C++嵌套類

2010-01-28 14:38:36

C++和C#、Java

2011-07-13 18:00:51

CC++VC

2024-06-28 10:04:09

2009-10-22 09:17:16

C++ CLR

2010-01-15 17:38:37

C++語言

2011-06-21 15:00:07

JAVAC++

2010-01-08 16:52:57

C++和C#

2023-09-04 11:00:54

CC++語言

2024-02-26 12:13:32

C++開發編程

2010-01-25 18:24:11

C++

2012-08-03 08:57:37

C++

2024-05-15 16:01:04

C++編程開發

2009-08-13 17:30:30

C#構造函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产视频福利一区 | 精品视频一区二区三区在线观看 | 中文字幕在线一区 | 久久av一区 | 国产激情在线播放 | 爱操av | 91av视频| 国产精品视频yy9299一区 | 中文字幕综合 | 欧美在线一区二区三区 | 毛片av免费看 | www.久久99| 国产精品免费观看 | 色综合九九 | 日韩激情免费 | 久久噜噜噜精品国产亚洲综合 | 精品一区二区在线看 | 在线2区 | 成人在线精品视频 | 欧美1区2区| 亚洲高清视频在线 | 国产精品高潮呻吟久久 | 久久久亚洲成人 | 美女天堂 | 久久精品a | 国产精品成人一区二区三区 | 国产女人与拘做视频免费 | 男女久久久 | 一区二区在线免费观看 | 日韩1区 | 精品国产1区2区3区 一区二区手机在线 | www.色综合 | 在线看一区二区 | 欧美xxxx性xxxxx高清 | 国产一区二 | 不卡一区二区三区四区 | av影音资源| 成人免费淫片aa视频免费 | 伦理午夜电影免费观看 | 日韩免费1区二区电影 | 国产精品一区在线观看 |