Чтобы загрузить сцены из файлов, я написал SDFLOALER для чтения файлов SDF и создания сцен. < /p>
Если я теперь хочу скомпилировать загрузчик, я получаю следующую ошибку: < /p>
Код: Выделить всё
rc/sdf_loader.cpp: In member function 'void SDFloader::add_shape(std::istringstream&)':
src/sdf_loader.cpp:95:58: error: invalid new-expression of abstract class type 'box'
&scene_.materials[mat]));
^
< /code>
Я попытался найти решение, но не удалось. >
class SDFloader {
public:
SDFloader();
~SDFloader();
Scene const& scene() const;
void read(std::string file);
private:
void add_material(std::istringstream&);
void add_shape(std::istringstream&);
void add_light(std::istringstream&);
void add_camera(std::istringstream&);
void apply_transformation(std::istringstream&);
private:
Scene scene_;
};
< /code>
В моей реализации загрузчика SDF я написал метод read (): < /p>
void SDFloader::add_shape(std::istringstream& iss) {
std::string name;
iss >> name;
if(name == "box") {
double x1,y1,z1,x2,y2,z2;
std::string mat;
iss >> name >> x1 >> y1 >> z1 >> x2 >> y2 >> z2 >> mat;
scene_.shapes.insert(new box(point(x1,y1,z1),
point(x2,y2,z2),
name,
&scene_.materials[mat]));
}
< /code>
и для каждой другой формы одинаковые вызовы. < /p>
Где проблема в моем коде? Я действительно не вижу этого
Я использую G ++ - 4.9 - std = c ++ 0x Подробнее здесь: https://stackoverflow.com/questions/238 ... class-type
Мобильная версия