Как получить доступ к 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;
}
Все было слишком просто, чтобы быть правдой.