介紹C++的類與C#的類
許多編程人員學(xué)習(xí)C++總結(jié)經(jīng)驗為,有的覺得C++語言是一門獨立的語言,并不是在C語言的基礎(chǔ)上,可以直接學(xué)習(xí)C++不必先從C下手。希望大家能夠在此學(xué)習(xí)到自己想要的東西。
"C"語言系列是面向?qū)ο笤O(shè)計發(fā)展的***例子。C++為開發(fā)者提供了優(yōu)秀的面向?qū)ο缶幊坦ぞ?,程序員可以顯式地創(chuàng)建構(gòu)造函數(shù),拷貝構(gòu)造函數(shù),重載操作符,使用模板等等。
C++的類這樣復(fù)雜語言的主要問題是程序員要花上好幾個月來掌握面向?qū)ο笤O(shè)計本質(zhì)。新程序員必須學(xué)會掌握模板,函數(shù)重載,當然還要會創(chuàng)建和使用功能良好的類。    
微軟公司給C#(讀為C-Sharp)賦予C++某些面向?qū)ο蟮谋举|(zhì)。#t#
比如模板,但改變了類的創(chuàng)建方法。本文,我將對比C++的類,并著重說明微軟在C#中類創(chuàng)建和使用方面的改變。 本文對象是熟練的C++程序員,通過一些細節(jié)來解釋C#面向?qū)ο蟮谋举|(zhì)。
如你所知,C#是部分基于C++,部分基于Java語法的語言。C#中還有一些細節(jié)上的改變,使得它可以用于現(xiàn)代設(shè)計。當你開始用C#建類時就會立即看到這點。讓我們通過一個簡單的例子開始了解在C++和C#中是如何建類并進行實例化的。
- #include
 - class MyClass
 - {
 - public: void doSomething()
 - { std::cout << "This is some text";
 - }
 - };
 - void main()
 - { MyClass mc;
 - mc.doSomething();
 - }
 - C# 版本:
 - using System;
 - class MyClass
 - {
 - public void doSomething()
 - {
 - Console.WriteLine("This is some text");
 - }
 - }
 - class EntryPoint
 - { public static void Main()
 - { MyClass mc = new MyClass();
 - mc.doSomething();
 - }
 - }
 
首先,C++用#include包含語句來指明包含文件iostream.h的物理路徑。C#則告訴編譯器程序?qū)⒃赟ystem命名空間下操作,所有的命名空間和類都屬于System命名空間。C#通過命名空間的名字來決定程序的作用范圍(本例中只有System一個命名空間),而不用指明物理路徑的包含文件方法。
 其次,C#的主程序用Main(注意M是大寫)。 第三,C++的類聲明結(jié)束后要在***的大括號后面用分號結(jié)尾。C#則可用可不用,往往都是省略。 第四,你能看到在C#中必須顯式地聲明方法和成員的作用域。若不加聲明,缺省為私有(只有類成員可以訪問),這點與C++一樣。C#中有5種作用域:
 公有(public):其他類成員也可以訪問 
 私有(private):只有類成員才能訪問 
 保護(protected):類成員和繼承類成員可以訪問 
 內(nèi)部(internal):只有匯編里的成員才能訪問(C#的匯編是代碼和資源數(shù)據(jù)的結(jié)合,以asmx作文件后綴) 















 
 
 

 
 
 
 