首先,我知道std::string
类具有我可能需要的所有功能。这只是为了测试目的,看看我将来能做什么。
反正,
说我有这个:
class MyString : public std::string { }
例如,我将如何使用:
MyString varName = "whatever";
因为我肯定会收到错误,因为“whatever”是 std::string 而不是 MyString 类的成员?
如果你明白我的意思,我该如何解决这个问题?
(顺便说一句,我知道这可能是一个非常愚蠢的问题,但我很好奇)
简单地从类派生来添加成员函数并不是一个好主意;特别是像这样的非多态类std::string
。相反,编写非成员函数来对现有字符串类执行任何您想要的操作。
如果你确实想这样做,你可以继承构造函数:
class MyString : public std::string {
public:
using std::string::string;
};
现在您可以以任何可以初始化的方式初始化您的类std::string
,包括从字符数组进行转换,如您的示例所示。 (顺便一提,"whatever"
不是一个std::string
,它是一个以零结尾的字符数组,const char[9]
.)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)