Я написал класс Seat в cpp & Я объявил его указателем функции. класс implimentation приведен нижеФункциональный указатель delclaration в C++
Seat.cpp
#include "StdAfx.h"
#include "Seat.h"
int Seat::count = FL;
Seat::Seat(void)
{
seatId = Seat::count;
seatStatus = unoccupied;
Seat::count++;
}
Seat::~Seat(void)
{
}
void Seat::*checkSeatStatus(void)
{
}
Seat.h
#include <string>
using namespace std;
class Seat :
public Vehicle
{
int seatId;
int seatStatus;
static int count;
public:
Seat(void);
~Seat(void);
void (*checkSeatStatus)();
};
он показывает ошибку при объявлении указателя функции:
'checkSeatStatus': незаконное использование типа 'void'
В чем причина? , нужна ли инициализация указателя функции?
Вы объявляете 'checkSeatStatus' как член * variable *, а не функцию-член. Поэтому он должен быть инициализирован, чтобы указать на какую-то вызываемую функцию, но у нее не должно быть тела функции. В чем цель 'checkSeatStatus'? Должна ли быть фактическая функция-член? Должна ли она быть переменной? –
Это функция-член –
Так что она не должна быть переменной-членом, а членом-функцией, * методом *? Что он должен вернуть? «Общий указатель» (т. Е. 'Void *')? Ничего вообще (т. Е. 'Void')? Вернуть что-то еще? Что мы должны делать? –