繁体   English   中英

C ++ 11构造函数继承无效

[英]C++11 constructor inheritance not working

我尝试了以下代码:

struct Base {
    Base(int a) {}
};

struct Derived : Base {
    using Base::Base; // Inherit Base's constructors.
};

int _tmain(int argc, _TCHAR* argv[])
{
    Derived d(1);
}

这不会编译,我得到:

error C2664: 'Derived::Derived(const Derived &)' : cannot convert argument 1 from 'int' to 'const Derived &' 

(找不到相关的构造函数,它会尝试调用默认的复制构造函数)

我该如何解决继承问题,以便Derived d(1); 会编译吗?

根据http://msdn.microsoft.com/zh-cn/library/hh567368.aspx ,构造函数继承未在任何现有的Visual C ++编译器中实现:(

不过,根据http://blogs.msdn.com/b/vcblog/archive/2014/06/11/c-11-14-feature-tables-for-visual- ,如果我们有耐心等待更多时间studio-14-ctp1.aspx即将发布的版本将对此提供支持。

暂无
暂无

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

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