Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/40: Рейтинг темы: голосов - 40, средняя оценка - 4.53
1 / 1 / 0
Регистрация: 29.03.2015
Сообщений: 10
1

Static struct в классах

13.06.2015, 19:54. Показов 7685. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Суть проблемы: Создал *.h фаил в котором объявил статическую структуру date, далее к заголовочному файлу класса заинклюдил заголовочный структуры.
Создал объект структуры в классе
В методах автофильтр определяет поля структуры
но при компиляции выдает
error LNK2001: неразрешенный внешний символ ""private: static struct Date Item::date" (?date@Item@@0UDate@@A)"
Подскажите пожалуйста.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2015, 19:54
Ответы с готовыми решениями:

Смысл запрета на объявление enum в не static классах?
Есть не static класс, у меня он называется ParsingPart. Экземпляры этого класса пока могут быть...

Как изменить свойство non-static объекта из static метода
Понимаю, что такое не задумано средствами Net Framework, но у меня из-за этого не работает одна...

Как правильно разместить static поверх других static-ов
Есть кнопка, нажимая на которую становится видно статик. проблема в том, что статик отображатеся...

Как открыть struct в struct
Здравствуйте, есть код, мне нужно узнать как можно открыть struct в struct, к примеру чтобы...

7
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,713
13.06.2015, 20:25 2
Каждый статический элемент надо инициализировать объявлением вне класса.
C++
1
Date  Имя_Вашего_класса::date={чему у Вас она равна};
0
1 / 1 / 0
Регистрация: 29.03.2015
Сообщений: 10
13.06.2015, 20:30  [ТС] 3
Цитата Сообщение от zss Посмотреть сообщение
Каждый статический элемент надо инициализировать объявлением вне класса.
static struct Clock
{
int hours = 0;
int munite = 0;
int second = 0;
};

я его инициализировал при создании или о чем идёт речь ?
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
13.06.2015, 20:39 4
Цитата Сообщение от Rem1te Посмотреть сообщение
или о чем идёт речь ?
Об этом:
Цитата Сообщение от Rem1te Посмотреть сообщение
Создал объект структуры в классе
Покажи класс.
0
1 / 1 / 0
Регистрация: 29.03.2015
Сообщений: 10
13.06.2015, 20:40  [ТС] 5
Цитата Сообщение от lss Посмотреть сообщение
Покажи класс.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
class Item
{
private:
    char *name;
    char *descript;
    double price;
    int quantity;
    static Date date;
    static Clock clock;
public:
    Item();
    Item& operator=(const Item&);
    void set_name();
    void set_desc();
    void set_price(double);
    void set_quantity(int);
    int get_quanity()const;
    static void SetClock();
    static void ShowClock();
    static void SetDate();
    static void ShowDate();
    void set();
    friend ostream& operator << (ostream&, const Item&);
    ~Item();
};
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
13.06.2015, 20:45 6
Цитата Сообщение от Rem1te Посмотреть сообщение
static Date date;
static Clock clock;
Так как эти поля не принадлежат объекту, то, при создании объекта, под них не выделяется память. Нужно это сделать где-то отдельно (инициализировать их), в .cpp файле.

Добавлено через 1 минуту
Цитата Сообщение от Rem1te Посмотреть сообщение
Создал *.h фаил в котором объявил статическую структуру date
Понял, зачем объявляешь структуру как статик в .h файле?
0
1 / 1 / 0
Регистрация: 29.03.2015
Сообщений: 10
13.06.2015, 21:10  [ТС] 7
Цитата Сообщение от lss Посмотреть сообщение
Так как эти поля не принадлежат объекту, то, при создании объекта, под них не выделяется память. Нужно это сделать где-то отдельно (инициализировать их), в .cpp файле.
а инклюдить потом cpp файл, или через заголовочный ?
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
13.06.2015, 23:09 8
Заголовочный, компоновщик найдёт определение в .cpp.
0
13.06.2015, 23:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.06.2015, 23:09
Помогаю со студенческими работами здесь

Struct sockaddr vs. struct sockaddr_in
Вопрос,связанный с переносимостью кода на другие платформы. Читаю эту книжку...

Ошибка “non-static method cannot be referenced from a static context”
Проблема в том, что в одном классе он просто сделать методы static, а в другом - требует обратного...

Ошибка: Cannot make a static reference to the non-static method
решил учить андроид. решил написать чат, но при создании сервера на Java по примеру на сайте у...

Ошибка: non-static variable this cannot be referenced from a static context
Добрый вечер! Не пинайте сильно ногами, недавно решил взяться за обучение языку Java, что в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru