Я пытаюсь перезаписать класс своей собственной версией, а затем создать ссылку на суперкласс для этого класса, но получаю ошибку компиляции. Вот моя структура кода
Файл: 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>)))’
Что я делаю неправильно?
*mystyle_ = new RailExtractionInteractorStyle;
в конструкторе. - person Grambot   schedule 19.01.2013*mystyle_ = ...
на неинициализированном указателе? Разве мы не затронули это в другом из ваших вопросов? - person K-ballo   schedule 19.01.2013