Как получить доступ к protected-полям класса извне?

В кратце, такая дилема. Дан код:

class SecretClass {
private:
    std::string token;
protected:
    void SetTokenTo(SecretClass& another) {
        another.token = token;
    }
public:
    SecretClass(const std::string& token) : token(token) {};
    std::string GetToken() const {
        return token;
    }
};

void externalFunction(SecretClass& secret) {
        
}

int main() {
    SecretClass secret("FUTURE");
    externalFunction(secret);
    assert(secret.GetToken() == "CODE");
}

и нужно написать функцию externalFunction так, чтобы она заменяла один token на другой. Я думаю что для этого нужно как то получить доступ к функции SetTokenTo, но я не знаю как это сделать. Помогите пожалуйста!

P.S. Забыл добавить что можно дописывать что хочешь главное не трогать main и SecretClass.


Ответы (1 шт):

Автор решения: Potato Man

В общем, ларчик просто открывался:

void externalFunction(SecretClass& secret) {
    SecretClass abc("CODE");
    secret = abc;
}

Все было слишком просто, чтобы быть правдой.

→ Ссылка