В настоящее время я работаю над проектом колледжа с C++, и одним из моих заданий является создание социальной сети с использованием наследования и полиморфизма. В настоящее время у меня есть класс Node, который используется на . Карта и Multimap (оба создаются вручную и не используются с std). Узел может содержать две переменные (например, ) и данные), и где я его использую, первая переменная может быть указателем или строкой (они позволяют нам использовать std :: string).Как использовать std :: string с наследованием в качестве параметра?
Проблема, с которой я сталкиваюсь, заключается в том, что когда я наследую класс «root» (Object Object) и использую «Object» в качестве типа данных для «ключа», я не могу передать строку, созданную с помощью std как параметр к его конструктору, потому что он не наследуется от моего класса Object. Одно из решений - реализовать мой собственный класс строк и сделать его унаследованным от Object, но я искал другие обходные пути.
Если у вас возникли проблемы с логикой выше, скажите мне, что я только начинаю с C++.
EDIT 1 (некоторый код для моего узла):
class TempNode
{
private:
TempNode* next;
Key key;
T value;
public:
TempNode();
explicit TempNode(const Key thisKey, const T thisValue, TempNode* thisNext = NULL)
: key(thisKey)
, value(thisValue)
, next(thisNext)
{
}
inline Key getKey() { return key; }
inline T getValue() { return value; }
inline TempNode* getNext() { return next; }
inline void setNext(TempNode* thisNext) { next = thisNext; }
};
Строковых или Person типа в настоящее время используется только в ключе, но это с другой реализацией с использованием шаблонов (который работает отлично), но мой учитель теперь требует от нас применить наследование ко всему проекту (привыкнуть к нему, я думаю).
Пожалуйста, используйте примерный код, чтобы показать, что вы сейчас пытаетесь, даже если вы знаете, что это неправильно. – aschepler
Вы можете обернуть 'std :: string' в некоторый класс, полученный из' Object', поэтому это возможно. – dyp
@aschepler Я добавил свой класс Node и еще несколько объяснений. –