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