幾分鐘輕輕松松學(xué)好C++
其實(shí)C#的語(yǔ)法與C++非常相似,有些變化引起的錯(cuò)誤卻很?chē)?yán)重,本文就對(duì)于大多數(shù)用戶(hù)頭疼的C++語(yǔ)言進(jìn)行詳細(xì)的剖析與介紹,希望大家能從中找到自己想要的東西。
因?yàn)楫吘顾⒉皇且粋€(gè).net下的正統(tǒng)語(yǔ)言,.net應(yīng)該是c#的舞臺(tái),作為一個(gè)C++程序員,我們應(yīng)該慶幸,因?yàn)槲覀儗W(xué)習(xí)c#其實(shí)是簡(jiǎn)單的直接的,需要我們接受的新知識(shí)其實(shí)不多,相對(duì)其他語(yǔ)言來(lái)說(shuō),我們應(yīng)該可以更加平滑的過(guò)渡到c#的開(kāi)發(fā)中.廢話(huà)不多說(shuō),現(xiàn)在就讓我們用C++的基礎(chǔ)來(lái)學(xué)習(xí)這個(gè)漸漸壯大的新語(yǔ)言-----C#
對(duì)于C#的講解我只講解和C++有區(qū)別的地方,相同的部分我就一帶而過(guò),.這樣的對(duì)比學(xué)習(xí)可以讓我們?cè)谝延兄R(shí)的前提下快速掌握C#,一開(kāi)始學(xué)習(xí)語(yǔ)言大部分的教程都會(huì)用一個(gè)Hello World程序來(lái)示范,我們也落入俗套,用Hello World來(lái)和C++中做一個(gè)比較:
- #include <iostream>
- using namespace std;
- void main()
- {
- //C++程序
- /* C++程序*/
- cout<<"Hello World!"<<endl;
- }
- C#:
- using System;
- namespace HelloWorl
- {
- class Class1
- {
- //C#程序
- /*C#程序*/
- ///C#程序
- static void Main ()
- {
- Console.WriteLine ("Hello World!");
- }
- }
- }
一眼看上去兩者差不多,心中一陣竊喜,可以說(shuō)C++對(duì)語(yǔ)法的定義更加嚴(yán)格一些. 首先對(duì)于程序的進(jìn)入點(diǎn),最大的區(qū)別就是Main函數(shù)的開(kāi)頭必須要大寫(xiě).因?yàn)镃#是一個(gè)完全面向?qū)ο蟮某绦蛘Z(yǔ)言,所以它的所有代碼都必須定義在一個(gè)類(lèi)中,Main函數(shù)也不例外,同時(shí)因?yàn)?net程序在編譯運(yùn)行時(shí)都是先轉(zhuǎn)為中間語(yǔ)言,然后中間語(yǔ)言再編譯為機(jī)器語(yǔ)言,這樣的好處有2個(gè)。
如同Jave一樣,寫(xiě)好的程序可以在不同的系統(tǒng)中運(yùn)行,而不需要改變程序.二.使用不同的語(yǔ)言寫(xiě)的程序,因?yàn)橐D(zhuǎn)化為相同的中間語(yǔ)言。所以在程序開(kāi)發(fā)中可以使用不同的程序語(yǔ)言編寫(xiě),而相互調(diào)用.,當(dāng)使用不同語(yǔ)言開(kāi)發(fā)或者進(jìn)行分類(lèi)開(kāi)發(fā)時(shí),各自開(kāi)發(fā)的程序中會(huì)出現(xiàn)相同的變量名,函數(shù)名等,所以在寫(xiě)C#程序時(shí),必須把程序包涵在一個(gè)名字空間內(nèi).
定義名字空間使用關(guān)鍵字:namespace <空間名>.當(dāng)一個(gè)命名空間中的代碼需要使用在另一個(gè)名字空間中定義的名稱(chēng),就必須包括對(duì)該命名空間的引用,使用點(diǎn)字符(.) 這里就定義了兩個(gè)名字相同的變量,我們可以使用LevelOne.A 和 LevelOne.LevelTwo.A 來(lái)獨(dú)立使用它們,互不干擾。#t#
建立了名字空間后,我們可以使用using關(guān)鍵字來(lái)簡(jiǎn)化對(duì)它們包含的名稱(chēng)的訪(fǎng)問(wèn).和C++中使用using namespace std的含義相似;對(duì)于主函數(shù)必須要有限定詞static 這表明Main函數(shù)是靜態(tài)的,在內(nèi)存中只能有一個(gè)副本.
第一行中的using System.其命名空間是.NET應(yīng)用程序的根名字空間,包涵了控制臺(tái)應(yīng)用程序所需要的所以基本功能.就如同C++中的頭文件包涵在std這個(gè)名字空間中一樣.Console.WriteLine ("Hello World!");Console是system名字空間中的一個(gè)類(lèi),其有一個(gè)WriteLine方法,它的作用和cout一樣,輸出一行字符串。