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ď č. 1V 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.