У меня была полезная функция, которую я хотел преобразовать из автономной утилиты в вспомогательный класс в стиле RAII. Мое определение класса идет хорошо, пока я не вставлю код функции и не переименую его. На этом этапе имя функции подчеркнуто красным, и во всплывающей подсказке говорится, что «функция-член с тем же именем, что и ее класс, должна быть конструктором».
Это сообщение об ошибке не полезно. Я знаю , что не могу написать функцию с тем же именем, что и у класса (и поэтому предложенные дубликаты мне не очень полезны). Я хочу , чтобы эта функция была конструктором. Почему не так? Что происходит?
До:
void Useful( int Param ) // works, and is useful
{
// do useful things
}
После того, как:
class Useful
{
void Useful( int Param ) // generates error
{
// do useful things
}
};