Die Klasse ist das was man unter Java als Interface bezeichnen würde:
Dazu gibt es von clang++ ein Warning:
/NodeVisitor.hpp:15:8: warning: 'NodeVisitor' has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit [-Wweak-vtables]
Für mich stellt sich hier die Frage, wozu braucht man eine vtable für eine Klasse die nicht Instantiiert werden kann? Ist das Warning einfach nicht ausgereift?
Weiter geht es:
Dazu gibt es folgendes Warning:
Serialise.hpp:17:8: warning: 'octree::Serialise' has virtual functions but non-virtual destructor [-Wnon-virtual-dtor]
Weder NodeVisitor noch Serialise habein überhaupt einen Destruktor. Ist der implizit oder ist das Warning kaputt?
Code:
class Node;
class NodeVisitor {
public:
virtual void visit(uint8_t const scale, Node const &node) = 0;
};
Dazu gibt es von clang++ ein Warning:
/NodeVisitor.hpp:15:8: warning: 'NodeVisitor' has no out-of-line virtual method definitions; its vtable will be emitted in every translation unit [-Wweak-vtables]
Für mich stellt sich hier die Frage, wozu braucht man eine vtable für eine Klasse die nicht Instantiiert werden kann? Ist das Warning einfach nicht ausgereift?
Weiter geht es:
Code:
class Serialise : public NodeVisitor {
private:
[…]
public:
Serialise(std::ostream &os);
virtual void visit(uint8_t const scale, Node const &node);
};
Serialise.hpp:17:8: warning: 'octree::Serialise' has virtual functions but non-virtual destructor [-Wnon-virtual-dtor]
Weder NodeVisitor noch Serialise habein überhaupt einen Destruktor. Ist der implizit oder ist das Warning kaputt?