如何在Visual Studio中使用默认的C ++字符串构造函数?

时间:2015-05-27 13:13:01

标签: c++ visual-studio visual-studio-2013

所以基本上,我只是搞乱了类和函数等等,我想知道的一点是:

假设我有这个类,它来自std :: string

class MyString : public std::string {
};

因为我想创建类型为MyString的变量,其初始化方式与std :: string相同,所以我尝试使用:

using std::string::string;

然而,这似乎在Visual Studio中不起作用 - 对VS,string()不是成员函数。

这适用于Code :: Blocks / G ++,为什么不使用Visual Studio / VC ++?

2 个答案:

答案 0 :(得分:3)

根据MSDN,不支持inherting构造函数,至少在VS2013或更早版本中是这样。

但是你不应该继承std::string。没有好处会来。如果要扩展现有类的功能,请编写非成员函数。

答案 1 :(得分:1)

适用于MSVC2015。 VS2013不支持继承构造函数

                           2010  2012  2013
Inheriting constructors    No    No    No

虽然MSVC2015(从预览开启):http://blogs.msdn.com/b/vcblog/archive/2014/11/17/c-11-14-17-features-in-vs-2015-preview.aspx

至于为什么你不应该继承std::string,我推荐这篇文章:Why should one not derive from c++ std string class?