Ваш оператор = (постоянный вопрос &) неверен, он ничего не делает, только возвращает текущий объект.Если этот объект был создан с помощью конструктора по умолчанию, «вопрос» и «ответ» не инициализируются, и ваша программа может аварийно завершить работу, если используется этот оператор.
Оператор "=" должен копировать каждое поле.Для строковых указателей, таких как «вопрос» и «ответ», необходимо выделить новую память для содержимого строки и скопировать символы из строк объекта, переданного в качестве параметра.Но вам, вероятно, следует все равно избавиться от оператора = и использовать std :: string для «question» и «answer» вместо char * (см. Ниже).
Наконец,
if(answer.find("What is") && answer.find(answer))
не имеет смысла.Вероятно, это должно быть что-то вроде:
bool Question::checkAnswer(string proposedAnswer)
{
if(question.find("What is") && answer.find(proposedAnswer))
return true;
return false;
}
... при условии, что вы изменили тип вопроса и ответа с char * на string:
public:
int col;
int row;
bool dailyDouble;
string question;
string answer;
...