如何在C++/CLI中将重载的构造函数调用转发给另一个构造函数

Yur*_*rik 7 c++-cli visual-c++ delegating-constructor

我知道在纯C++中没有办法做到这一点,但我想知道是否可以从C++/CLI中的另一个构造函数的初始化列表中调用构造函数,就像在C#中可以这样做一样.

例:

ref class Foo {
  Foo() {}
  Foo(int i) : Foo() {}
}
Run Code Online (Sandbox Code Playgroud)

Han*_*ant 15

它被称为"委托构造函数".目前还没有该语言版本.但是有一个正式的提案,你会在语言规范的附件F.3.1中找到它.考虑到微软对C++/CLI的立场,这不太可能很快就能看到光明.


更新:委托构造函数确实超出了该附件中的提议,它们被添加到标准C++ 11语言规范中.Microsoft一直致力于实现C++ 11的增加.委托构造函数最终成功用于VS2013.他们也在该版本的C++/CLI中工作.