При компиляции я получаю сообщение об ошибке «строка 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;
Нет, компилятор должен знать о типах, прежде чем он может составить код. Он не читает вперед. Почему бы просто не объявить типы сначала? –
'int input = NULL' (В списке параметров метода' operation') просто более странный (хотя и законный). Может быть, 'int * input = NULL' или' int input = 0'? – xaero99
Ну, вот тогда, когда я получаю доступ к функции, и я решил не передавать параметр в «input2» – Josh