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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> static Переменные в классе 
:(
    Опции темы
Burka
Дата 14.7.2011, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Подскажите как использовать статические переменные в классе.
вот пример кода который используется у меня. мне надо в функции MyFunc1 и MyFunc2 использовать переменные Sc1, Sc2. при компиляции я получаю ошибку
Цитата

error LNK2001: неразрешенный внешний символ ""private: static class SomeClass * test::Sc1"
error LNK2001: неразрешенный внешний символ ""private: static class SomeClass * test::Sc2"


Код


struct MyStruct
{
   int a;
   int b;
};

class test
{
       static SomeClass * Sc1;
       static SomeClass * Sc2;
       
       static MyFunc1();   
       static MyFunc2();

};

Мне необходимо что бы функции MyFunc1 и MyFunc2 были статическими, они используются как Callback функции, и список параметров нельзя изменить. но надо передать этим функциям переменные

Это сообщение отредактировал(а) Burka - 14.7.2011, 10:57


--------------------
Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.
PM MAIL   Вверх
xvr
Дата 14.7.2011, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Код

// Some .h file
class test
{
       static SomeClass * Sc1;
       static SomeClass * Sc2;
       
       static void MyFunc1();   
       static void MyFunc2();
};

// Some .cpp file
#include "some.h"

SomeClass * test::Sc1;
SomeClass * test::Sc2;



PM MAIL   Вверх
Burka
Дата 14.7.2011, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(xvr @  14.7.2011,  10:58 Найти цитируемый пост)
SomeClass * test::Sc1;
SomeClass * test::Sc2;


А этот код что конкретно делает? описывает переменные или обращается к ним?

что то у меня не получается это применить) как будет выглядеть код внутри функции не могу понять)

upd.что то получилось но выдает такую ошибку 
Цитата

error C2040: Sc2: "SomeClass *" отличается по уровням косвенного обращения от "SomeClass"


Это сообщение отредактировал(а) Burka - 14.7.2011, 11:18


--------------------
Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.
PM MAIL   Вверх
xvr
Дата 14.7.2011, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Цитата(Burka @  14.7.2011,  11:04 Найти цитируемый пост)
А этот код что конкретно делает? 

Описывает ваши статические переменные. Для static переменных в классе недостаточно их описать в самом классе, их еще надо явно определить где то в модуле (.cpp)

Цитата(Burka @  14.7.2011,  11:04 Найти цитируемый пост)
что то получилось но выдает такую ошибку

Покажите код, на который ругается

PM MAIL   Вверх
Burka
Дата 14.7.2011, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(xvr @ 14.7.2011,  11:25)
Цитата(Burka @  14.7.2011,  11:04 Найти цитируемый пост)
А этот код что конкретно делает? 

Описывает ваши статические переменные. Для static переменных в классе недостаточно их описать в самом классе, их еще надо явно определить где то в модуле (.cpp)

Цитата(Burka @  14.7.2011,  11:04 Найти цитируемый пост)
что то получилось но выдает такую ошибку

Покажите код, на который ругается

Спасибо, разобрался как использовать) очень выручил)


--------------------
Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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