Хорошо, я пытаюсь понять внутреннюю структуру LinkedList и создал два класса: Node и LinkedList. По какой-то причине конструктор узла выдает int, а не узел.
Node* head; // throws " error: invalid conversion from 'int' to 'Node*' [-fpermissive]"
int whyDoesThisWork = new Node(); //by god this works
Первый случай раздражает, а второй на самом деле забавный. Вот мой Node.h:
#ifndef NODE_H_
#define NODE_H_
class Node {
public:
Node();
Node(int val);
~Node();
int value;
Node* next;
};
#endif /* NODE_H_ */
My Node. cpp:
#include "Node.h"
#include <stdlib.h>
Node::Node() {
this->value = 0;
this->next = NULL;
}
Node::Node(int val) {
this->value = val;
this->next = NULL;
}
Я абсолютно не понимаю, почему конструктор Node возвращает int. Любое понимание будет оценено
Edit Вот мой файл драйвера:
#include <iostream>
#include "LinkedList.h"
#include "Node.h"
using namespace std;
int main() {
Node* head;
int* val = new Node();
return 0;
}