Я получаю сообщение об ошибке в строке "void operation" при компиляции, потому что я еще не определил Gate_ptr. Я думал об обмене «Gate_ptr» просто «Gate *» вместо этого в функции def. Тем не менее, есть ли способ сохранить мой текущий стиль?
class Gate
{
public:
Gate();
void operation(Gate_ptr &gate_tail, string type, int input1, int input2=NULL);
private:
int cnt2;
int input_val1, input_val2;
int output, gate_number;
int input_source1, input_source2;
int fanout[8];
Gate* g_next;
string type;
};
typedef Gate* Gate_ptr;