2011-04-14 61 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 ::任何会为你

相关问题