Я новичок в C++, и я не знаю, как иметь дело с возвращаемым типом этого:с ++, возвращающие константную ссылку объекта
const Derived& myClass::getDerived(){} const
.
MyClass имеет переменную-член Base**b
:
#include "Base.h"
Class myClass
{
public:
virtual const Derived& getDerived() const;
.....
protected:
Base**b;
}
производный класс наследуется от базового класса:
Class Derived : public Base
{
....
}
Я пробовал: return b[indexOfDerived];
и ошибка: reference to type 'const Derived' could not bind to an lvalue of type 'Base *'
Я также попытался : return *this->b[indexOfDerived];
и погрешность: no viable conversion from returned value of type 'Part' to function return type 'const CPU'
Как вернуть ссылку на const для объекта? Я весьма озадачен.
Я инициализируется в конструкторе переменную Base**b
следующим кодом:
myClass::myClass()
{
b = new Base*[size];
for(int i = 0; i < size; i++)
{
b[i] = new Base();
}
}
....
// deallocating memory in destructor by using delete and delete[]
....
Извините за плохой синтаксис.
Я на самом деле работает спасибо! Я только начинаю изучать C++, и я раньше не видел «dynamic_cast <>» или «static_cast <>». Я понимаю, что кастинг в java и c, но еще не введен для кастинга на C++, есть ли у вас какая-либо рекомендуемая статья или ссылки, которые вводят кастинг в C++? СПАСИБО! –