У меня есть следующий класс:
class BigNum
{
public:
BigNum(string StrNumber) : Number(std::move(StrNumber)) {}
BigNum(const char *StrNumber) : Number(string(StrNumber)) {}
~BigNum() = default;
struct
{
string HEX() { return Number + " - HEX"; }
string DEC() { return Number + " - DEC"; }
string BIN() { return Number + " - BIN"; }
}ToString;
private:
string Number;
};
И, наконец, я получаю элегантный доступ к функциям из этой структуры следующим образом:
BigNum a = "1234";
cout << "a = " << a.ToString.DEC() << endl;
cout << "b = " << a.ToString.HEX() << endl;
Проблема в том, чтоЯ не могу получить доступ к переменной Number
из своей структуры.
Я знаю, что что-то подобное решит мою проблему:
struct
{
string HEX(BigNum &parent) { return parent.Number + " - HEX"; }
...
}ToString;
Проблема с этим решением состоит в том, что не всегда удобнопередать указатель на мой экземпляр.
Каким было бы решением в этом случае иметь данные во вложенном классе и в то же время сохранять вызовы такими простыми, как a.ToString.DEC()
?