Ошибка: ожидаемый неквалифицированный идентификатор до ') токен Node()

62
2

Итак, я продолжаю ошибаться, говоря, что мне нужен неквалифицированный идентификатор и не могу понять, что дает мне ошибку. пожалуйста помоги.

ошибка возникает в Node() класса.

 error: expected unqualified-id before ‘) token
Node()
^

Здесь код:

    #include <iostream>
#include <string>

using namespace std;

class AHuffman
{

public:
class Node
{
Node* right_child;
Node* left_child;
Node* parent;
Node* sibling;
int weight;
int number;
string data;
};

Node()
{
right_child = NULL;
left_child = NULL;
parent = NULL;
sibling = NULL;
weight = 0
number = 1;
data = "";
}

// int encode(string* msg, char** result, int rbuff_size);
// int decode(string* msg, char** result, int rbuff_size);
AHuffman(string* alphabet);
~AHuffman();
};

int main(int argc, const char* argv[])
{
if(argc != 4){
//Invalid number of arguments
cout << "invalid number of arguments" << endl;
return 1;
}
string* alphabet = new string(argv[1]);
string* message = new string(argv[2]);
string* operation = new string(argv[3]);

return 0;

}

спросил(а) 2021-01-25T16:49:01+03:00 4 месяца, 4 недели назад
1
Решение
100

Поскольку вы помещаете конструктор узла вне его класса:

В любом случае, вы должны инициализировать свои члены в списке инициализаторов членов, а не в теле конструктора.

class Node
{
Node* right_child;
Node* left_child;
Node* parent;
Node* sibling;
int weight;
int number;
string data;
public:
Node()
: right_child(0), left_child(0),
parent(0), sibling(0),
weight(0), number(1)
{
}
};

Еще одно замечание: вам не нужно много new в C++

ответил(а) 2021-01-25T16:49:01+03:00 4 месяца, 4 недели назад
45

Похож на плохо скопированный код. Сначала "Конструктор узла" должен либо иметь декларацию внутри класса "Узла", либо изменить определение внутри, как показано ниже.

Вы заявляете

class Node
{
private: // private members
Node* right_child;
Node* left_child;
Node* parent;
Node* sibling;
int weight;
int number;
string data;
public: // make it public so the class can actually be constructible
Node()
{
right_child = NULL;
left_child = NULL;
parent = NULL;
sibling = NULL;
weight = 0; // and delimiter here
number = 1;
data = "";
}
};

ответил(а) 2021-01-25T16:49:01+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема