TransformNode with 4 bytes to alignment boundary
Что означает ошибка: ... «байты для выравнивания границы» в Xcode/Clang?
А вот код, который вызывает данное предупреждение:
class TransformNode : public Node {
public:
int number;
public:
void test() { number = 12; }
};
//Node.h
class Node {
public:
typedef std::set<Node *> ChildSet;
protected:
ChildSet mChildren;
Node * mParent;
public:
Node(Node * parent=0) : mParent(parent) {}
~Node() {}
Node * addChild(Node * node);
inline Node * getParent() { return mParent; }
const ChildSet &getChildren() const { return mChildren; }
};
inline void node_test() {
TransformNode * node = new TransformNode;
node->test();
std::cout << node->number << "\n";
}
int main() {
node_test();
return 0;
}
ошибка происходит, когда я получить Node класс от класса TransformNode. Я использую xcode 5.0 со всеми предупреждениями, включенными и обрабатывающими предупреждения как ошибки. Я действительно хочу понять, что происходит с этим кодом, поэтому просто отключить предупреждения или перестать рассматривать их как ошибки не так, как я хочу справиться с этим.
EDIT: добавлено больше кода. Разъяснение о некоторых деталях (выделены жирным шрифтом)
Спасибо,
Gasim
Опубликовать больше кода. –
Должен ли я добавить больше кода? – Gasim
* Должен ли я добавить больше кода? * ** Да **. Вы все еще не показываете, где вы преобразуете узел в TransformNode. Как мы можем сказать, где вы ошибались, без этой важной части кода? –