Visual C++.NET真的要被局限性限制?
微軟官方將對C++語言引入.NET環(huán)境的舉動(dòng),先從風(fēng)格上說,使用Visual C++ .NET開發(fā)的代碼可能兼具M(jìn)FC、ATL、標(biāo)準(zhǔn)C++、.NET托管代碼等多種不同的風(fēng)格,這大大的方便了進(jìn)行Visual C++ .NET開發(fā)的技術(shù)人員。
其中,對C++語言本身影響***的,當(dāng)然要數(shù)Visual C++ .NET托管代碼為C++注入的若干新鮮血液了:
- #using
 - using namespace System;
 - using namespace System::Reflection;
 - using namespace System::Security::Permissions;
 - public __value enum SomeStuff {
 - e1 = 1,
 - e17 = 17
 - };
 - [attribute(AttributeTargets::Class, AllowMultiple=true)]
 - public __gc class ABC {
 - public:
 - ABC(int __gc[]) {}
 - ABC() {}
 - ABC(int) {}
 - ABC(int, float) {}
 - ABC(SomeStuff) {}
 - ABC(String*) {}
 - int rgnField __gc [];
 - double rgdField __gc [];
 - double dField;
 - };
 
上述代碼來自MSDN中的示例程序。看到Microsoft大刀闊斧地為C++語言引入的垃圾收集、Attribute屬性等新特性和新技術(shù),看到.NET托管代碼新奇得近乎離經(jīng)叛道的語言風(fēng)格。
我不知道是應(yīng)該為Microsoft在發(fā)展通用語言平臺上的努力而歡呼雀躍,還是應(yīng)該為C++在C#語言陰影下日漸屈居.NET大戲中的配角而灰心喪氣。也許,語言風(fēng)格和程序員的感受在Microsoft眼中,都是些不值一提的小事,它們哪能和.NET的宏偉戰(zhàn)略及Microsoft的強(qiáng)大帝國相提并論呢?
語言風(fēng)格的變遷從一個(gè)側(cè)面反映了技術(shù)思想和產(chǎn)業(yè)需求的嬗變規(guī)律。從1979年Stroustrup完成***個(gè)Cpre預(yù)處理程序算起,C++語言來到這個(gè)世界上已經(jīng)快滿25個(gè)年頭了。這是一種在實(shí)踐中誕生、成長和發(fā)展起來的語言。也許,Stroustrup從一開始就壓根兒也沒想把它設(shè)計(jì)成像Smalltalk那樣純粹的面向?qū)ο笳Z言。
開放性、高效率、兼容性和擴(kuò)展性的需求將C++語言塑造成了一種典型的多模式(Multiparadigm)語言。無論是C++早期對Simula語言的繼承。還是后來對Smalltalk、Ada、Clu等語言的借鑒。
無論是ANSI/ISO標(biāo)準(zhǔn)風(fēng)格的迅速普及,還是Visual C++ .NET在技術(shù)創(chuàng)新上的不懈努力,所有這些歷史變遷都說明,C++在風(fēng)格上的多樣性主要源自C++語言本身“海納百川”的胸襟和氣概。
【編輯推薦】















 
 
 







 
 
 
 