Я пытаюсь изучить и реализовать классы и столкнулся с этой проблемой реализации вложенных классов. Я внедрил его версию. Я хотел спросить, считаете ли вы его хорошим примером для вложенных классов? Как мы можем достичь той же цели, не встраивая эти классы?Как придумать хороший дизайн?
#include<iostream>
class Stack {
class Node {
public:
int data;
Node* next;
Node(int data, Node* next);
~Node();
}* head;
public:
Stack();
Stack(const Stack& s);
void operator=(const Stack& s);
~Stack();
void push(int data);
int peek() const;
int pop();
};
Прежде всего, ваш класс сломается, если скопирован. Вам нужен оператор копирования и оператор присваивания. Затем ваша функция peek может быть const. –
«Проблема реализации вложенных классов» Я думаю, что будет лучше понять, если вы зададите вопрос об этой проблеме. – SigTerm
@NeilKirk Что значит сломать класс? И просто чтобы подтвердить, что компилятор не будет создавать конструктор копирования и оператор присваивания из-за правила из трех, поскольку конструктор уже определен? –