所以基本上,我只是搞乱了类和函数等等,我想知道的一点是:
假设我有这个类,它来自std :: string
class MyString : public std::string {
};
因为我想创建类型为MyString
的变量,其初始化方式与std :: string相同,所以我尝试使用:
using std::string::string;
然而,这似乎在Visual Studio中不起作用 - 对VS,string()不是成员函数。
这适用于Code :: Blocks / G ++,为什么不使用Visual Studio / VC ++?
答案 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?