2011-04-14 24 views
2

我是新來的C++,我有一個案例,其中vb.net昏暗或C#s var會幫助我很大。在C++中是否有等價於Dim/var?

我google了一下,我發現沒有問題嗎? (儘管搜索詞使用var或dim以及C++似乎很容易)

是否有與此相當的內容?

+0

模糊問題的工作。標註變量有很多行爲。在這裏找到:http://msdn.microsoft.com/en-us/library/7ee5a7s1(v=vs.80).aspx你在找哪個(子)集?你在尋找沒有類型的變量嗎?有訪問修飾符的東西? – 2011-04-14 19:59:15

回答

9

不符合當前標準。

但是,今年可能推出的新版本(很可能稱爲C++ 11,但它通常也被稱爲C++ 0x)具有auto,它的功能與var的功能相同。 最近的版本已經支持all big compilers

例如:

auto MyValue = SomeFunction(); // The compiler will figure out the type of MyValue 
1

在C++中,您可以使用union或使用基類和繼承。

union允許您在內存中有一個區域並以不同的方式組織它。基類和繼承允許您以通用的方式處理子對象。

union 
{ 
    int value; 
    double floating_point; 
}; 

在上述union,整數value和雙精度floating_point變量佔據(聯合內)相同的面積。

union可能是與變體記錄最接近的數據結構。 Boost庫也有一個變種數據結構,在網上搜索「boost變種」。

4

根據我的評論,Dim做了很多不同的事情。

如果你正在尋找一個可以是任何東西,或東西會像

Dim var 
var = 1 
var = "Hello" 
Set var = new Thing 

您可以使用

  1. 無效*和投
  2. 聯合類型所有的變量這個變量可能是事先知道的,如果事先已知的話
  3. boost :: variant <> - 區分的聯合,如果所有類型都事先知道
  4. 的boost ::任何 - 任何你想要的類型,我能想到的最接近昏暗

懸崖筆記:

的boost ::任何會爲你

相關問題