/ / Ako príde program do príkazu „if“ alebo „else“? [closed] - c ++, if-statement, link-list

Ako to, že program nezadá vyhlásenie "if" ani "else"? [closed] - c ++, if-statement, linked-list

Snažím sa implementovať prepojený zoznam v C ++. A toto je kód

class List
{
typedef struct Node
{
string data;
Node* next = NULL;
}* NodePtr;


NodePtr headNode = nullptr;
NodePtr current;

public:
List()
{
headNode = nullptr;
}

void Add(string data_)
{
NodePtr nd = new Node;
nd->data = data_;
if (headNode == nullptr)
{
headNode == nd;
}
else
{
current = headNode;
while (current->next == nullptr)
{
current = current->next;
}
current->next = nd;
}
}
};

V metóde Add () je if-else pair. Keď ho ladím, nevstupuje, ak. To je v poriadku. Ale myslel som, že vždy, keď prešiel príkaz if, príkaz else by mal byť vykonaný. Nie je však vykonaná a ani prešla. Je to možné? Ak je to možné, čo by mohol byť dôvod?

odpovede:

2 pre odpoveď č. 1

V texte vyhlásenia o IF máte preklep:

headNode == nd;

Pravdepodobne by to malo byť:

headNode = nd;

Čo je s najväčšou pravdepodobnosťou spôsobí chyby a tiež zmätok, či je IF skutočne zadaný alebo nie.