Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> C++ static class members 
:(
    Опции темы
inline
Дата 6.1.2008, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 30.9.2006

Репутация: нет
Всего: нет



Код

#include <iostream>

class Test {
    public:
        static int foo() {
            x = 10; return x;
        }
    private:
        static int x;
};

int main() {
    std::cout << Test::foo() << std::endl;
}

Код

g++ -o t t.cpp
/tmp/cc2cJKlq.o: In function `Test::foo()':
t.cpp:(.text._ZN4Test3fooEv[Test::foo()]+0x5): undefined reference to `Test::x'
t.cpp:(.text._ZN4Test3fooEv[Test::foo()]+0xe): undefined reference to `Test::x'
collect2: ld returned 1 exit status

wtf?
PM MAIL   Вверх
Daevaorn
Дата 6.1.2008, 22:44 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

Репутация: 51
Всего: 70



Добавь после определения класса
Код

int Test::x = 0;

PM MAIL WWW   Вверх
inline
Дата 6.1.2008, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 30.9.2006

Репутация: нет
Всего: нет



Не работает, это же закрытый член.

Код

t.cpp:12: error: expected constructor, destructor, or type conversion before ‘=’ token

PM MAIL   Вверх
Alek86
Дата 6.1.2008, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



Код
class Test {
public:
  static int foo(){
    x = 10; return x;
  }
private:
  static int x;
};

int Test::x = 0;

int main() {
  std::cout << Test::foo() << std::endl;
}


VS 2005 компилит


--------------------
user posted image    user posted image
PM MAIL   Вверх
MAKCim
Дата 6.1.2008, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 52
Всего: 207



Цитата(inline @  6.1.2008,  22:51 Найти цитируемый пост)
Не работает, это же закрытый член.

все должно работать


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
MTWizard
Дата 7.1.2008, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 51
Регистрация: 8.10.2007
Где: Київ

Репутация: 3
Всего: 4



Только что скомпилил код Alek86 на gcc-3.4.5. Нет проблем. Так что просто где-то опечатка.
PM MAIL   Вверх
inline
Дата 7.1.2008, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 30.9.2006

Репутация: нет
Всего: нет



Все заработало, спасибо.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1149 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.