Я хочу расширить std::string
с некоторой функциональностью, поэтому я получаю свой String
от него. Чтобы сделать код вроде String str = stdStr;
, я попытался перегрузить оператор присваивания, но по какой-то причине мой код не вызывается. Как я могу это исправить?Перегрузка оператора присваивания C++
#include <string>
class String
:
public std::string
{
public:
/*
I do know that this constructor will solve the problem, but is it possible to use the operator?
String (const std::string& stdString)
{
...
}
*/
String& operator= (const std::string& stdString)
{
...
return *this;
}
};
int main()
{
std::string foo = "foo";
String bar = foo;
return 1;
}
Вы уверены, что наследование - это правильный способ расширения? –
Я думаю, что расширение строки - плохая идея. Невозможно сказать, какова ваша новая функциональность, но могу с уверенностью сказать, что наследование - это не способ сделать это. – duffymo
Хуже всего то, что вы называете это 'String' – UmNyobe