在C ++中是否有与Dim / var相同的东西?

时间:2011-04-14 19:50:27

标签: c++

我是C ++的新手,我有一个案例,其中vb.nets Dim或C#s var对我有很大的帮助。

我搜索了一下,我发现没有问题吗? (尽管使用var或dim和C ++的搜索术语似乎很容易偏离)

是否有相同的内容?

4 个答案:

答案 0 :(得分:9)

不符合现行标准。

然而,可能在今年到期的新版本(很可能称为C ++ 11,但它通常也被称为C ++ 0x)的auto与{var相同。 1}}。 最新版本的all big compilers已经支持它。

例如:

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

答案 1 :(得分:4)

您可能正在寻找C ++ 0x中的auto keyword

答案 2 :(得分:4)

根据我的评论,Dim做了很多不同的事情。

如果您正在寻找可以是任何东西的变量,或者像

那样的东西
Dim var
var = 1
var = "Hello"
Set var = new Thing

您可以使用

  1. void * and cast
  2. 这个变量可能存在的所有可能事物的联合类型,如果这些是预先知道的
  3. 升压::变体LT;> - 歧视联盟,如果事先知道所有类型,
  4. boost :: any - 你想要的任何类型,我能想到最接近Dim
  5. 悬崖说明:

    boost :: any会对你有用

答案 3 :(得分:1)

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

union允许您在内存中有一个区域,并以不同的方式组织它。基类和继承允许您以通用方式处理子对象。

union
{
  int value;
  double floating_point;
};

在上面的union中,整数value和双精度floating_point变量占据相同的区域(联盟中的 )。

union可能是与变体记录最接近的数据结构。 Boost库还有一个 variant 数据结构,在网上搜索“boost variant”。