Я новичок в С++, и это проблема, которая у меня есть:
У меня есть два класса: Client
и Host
. И когда все загружено, вы можете нажать две кнопки, если вы нажмете кнопку 1 Client
, и если вы нажмете кнопку 2 Host
, она будет загружена.
Теперь оба Client
и Host
являются довольно большими классами, и я не хочу помещать их в память. Поэтому моя идея заключалась в создании класса Base
, а затем оба Client
и Host
должны расширять базовый класс, и тогда единственное, что я должен был сделать, это следующее:
Base connection;
//If button 1 is pressed:
connection = Client();
//If button 2 is pressed:
connection = Host();
Хорошо, это звучало почти слишком хорошо, чтобы быть правдой, и когда я попробовал, у меня не было ошибок. Теперь возникает проблема, Base
имеет функцию с именем A
, а Client
имеет функцию, называемую B
. Таким образом, функция B
уникальна для класса Client
.
Когда я пытаюсь вызвать функцию B
, я получаю эту ошибку: 'class Base' has no member named 'B'
. Как я могу позволить С++ знать, что я говорю с классом Client
или Host
вместо Base
? Я также открыт для совершенно нового подхода к этой проблеме. Возможно, это просто ошибка в моем процессе мышления.
Спасибо заранее!