Я использую C++ для небольшого моего проекта. Я хочу определить статическую константную строку в файле заголовка класса и вернуть эту строку с помощью (статического) геттера. Вот файл заголовкаC++ как создать getter статического частного участника?
//*.h
class Authordd : public personDB
{
public:
Authordd();
Authordd(QString dbName, QString dbSurname);
Authordd(QString dbName, QString dbSurname, unsigned int dbid);
static std::string getTableName();
private:
static const std::string tableName;
};
Вот файл CPP:
const std::string Authordd::tableName = "Author";
Authordd::Authordd():personDB()
{
;
}
Authordd::Authordd(QString dbName, QString dbSurname):personDB(dbName, dbSurname)
{
;
}
Authordd::Authordd(QString dbName, QString dbSurname, unsigned int dbid):personDB(dbName, dbSurname)
{
id = dbid;
}
static std::string getTableName(){
return (Authordd::tableName);
}
Компиляция я получаю следующее сообщение об ошибке: /../persondb.cpp:21: ошибка: 'TableName' является частным членом 'personDB' return personDB :: tableName;
Я заметил, что если я делаю имя_таблицы общественности все в порядке: могу ли я сохранить этот член класса приватным и вернуть его со статическим общественным добытчика в C++.
*** static std :: string getTableName() {*** Вы определили глобальную функцию, не являющуюся членом вашего класса. – drescherjm
Файлы заголовков объявляют ** член ** функцию с именем 'getTableName()'; .cpp-файл определяет ** функцию non-member ** с именем 'getTableName()'. –
Почему ваши люди заставляют меня болеть за использование этого сайта и болеть за обучение: я пытался искать ответы и решения, но это были не мои дела. –