Как передать ссылку на статическое свойство класса в функцию, C++

программирование C++

Подскажите, как передать ссылку на статическое свойство класса, в функцию. Пример:
class DB{
public:
static sqlite3 *db;
};
int main()
{
sqlite3_open("test.db", &DB::db);
return 0;
}

Выводит ошибку:
/tmp/ccmEURQk.o: In function `main':
1.cpp:(.text+0xd): undefined reference to `DB::db'
collect2: выполнение ld завершилось с кодом возврата 1

Компилятор g++

Примечание:
Sciko зачем мне экземпляр, если это свойство статическое?
Как сказал Авдруг - надо было после класса инициализировать переменную
class DB{
public:
static sqlite3 *db;
};
sqlite3* DB::db;
Ответы:
Скорее всего, ошибка в том, что ссылка db передается в функцию без предварительной инициализации. db должна быть предварительно инициализирована.
Тебе же чётко написали: сущности (в твоём случае переменной) 'DB::db' не существует. А не существует потому, что ты объявил класс DB, но не создал экземпляр класса. Это как дать определение понятия человек, но не указать на конкретного человека.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.