ссылка суперкласса на объект подкласса

Я пытаюсь переписать класс своей собственной версией, а затем создать ссылку на суперкласс для этого класса, но получаю ошибку компиляции. Вот моя структура кода

Файл: RailExtractionInteractorStyle.h (это мой подкласс, который наследует суперкласс PCLVisualizerInteractor)

#include<pcl/visualization/interactor_style.h>class RailExtractionInteractorStyle : public pcl::visualization::PCLVisualizerInteractorStyle
{
public:
RailExtractionInteractorStyle();
};

Файл: RailExtractionInteractor.cpp:

#include "RailExtractionInteractorStyle.h"
RailExtractionInteractorStyle::RailExtractionInteractorStyle()
: pcl::visualization::PCLVisualizerInteractorStyle()
{
// just calling super constructor for now
}

Файл: CloudPointPicker.hpp (произвольный класс, который использует класс RailExtractionInteractorStyle)

#include "RailExtractionInteractorStyle.h"
template <typename PointT>
class CloudPointPicker {

protected:PointCloudTConstPtr cloud_;
boost::shared_ptr<pcl::visualization::PCLVisualizer> myview_;//attempting to write my own interactor
RailExtractionInteractorStyle* mystyle_;

public:

CloudPointPicker() {
*mystyle_ = new RailExtractionInteractorStyle;

}

Оператор в конструкторе CloudPointPicker выдает мне следующую ошибку:

error: no match for ‘operator=’ in ‘*((CloudPointPicker<pcl::PointXYZ>*)this)->CloudPointPicker<pcl::PointXYZ>::mystyle_ = (operator new(480u), (<statement>, ((RailExtractionInteractorStyle*)<anonymous>)))’

Что я делаю неправильно?

0

Решение

Вы должны удалить * в начале этой строки:

*mystyle_ = new RailExtractionInteractorStyle;

Оператор new применяется к указателю напрямую, вам не нужно разыменовывать его.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]