繁体   English   中英

C ++中的Dim / var是否等价?

[英]Is there an equvalent to Dim/var in C++?

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

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

是否有相同的?

不符合现行标准。

然而,可能在今年到期的新版本(很可能称为C ++ 11,但它仍然经常被称为C ++ 0x)具有与var相同的auto 它已经得到了所有大型编译器的最新版本的支持。

例如:

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

您可能正在寻找C ++ 0x中的auto关键字

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

如果你正在寻找一个可以是任何东西的变量,或者类似的东西

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

您可以使用

  1. void *和cast
  2. 如果这些变量可以预先知道,那么这个变量可以是所有可能的联合类型
  3. boost :: variant <> - 歧视联盟,如果所有类型都事先知道的话
  4. boost :: any - 你想要的任何类型,我能想到的最接近Dim的类型

克利夫指出:

boost :: any会对你有用

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

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

union
{
  int value;
  double floating_point;
};

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM