Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: статические члены класса  (Прочитано 7218 раз)
0 Пользователей и 1 Гость смотрят эту тему.
xelos
Гость
« : 09-01-2005 10:32 » 

сломал голову уже с компилятором от VS2003.

в общем, классический пример : есть класс CDate, хотим создать переменные, которые будут хранить значение по умолчанию и функция, которая будет менять это значение по умолчанию для всего класса.

делаю так:
Код:
//CDate.h
class CDate
{
private:
int d,m,y;
static int dd;
static int dm;
static int dy;
public:
static void SetDefault(int ds, int ms, int ys);
CDate(int ds=0,int ms=0,int ys=0);
~CDate(void);
};

//CDate.cpp
#include ".\date.h"

CDate::CDate(int ds, int ms, int ys)
{
    d=ds?ds:dd;
    m=ms?ms:dm;
    y=ys?ys:dy;
}

CDate::~CDate(void)
{
}

void CDate::SetDefault(int ds, int ms, int ys)
{
CDate::dd=ds;
CDate::dm=ms;
CDate::dy=ys;
}
выдает ошибку линкера - не находит статические переменные dd,dm,dy...
Записан
baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« Ответ #1 : 09-01-2005 10:37 » 

После объявления класса напиши
Код:
int CDate::dd;
int CDate::dm;
int CDate::dy;
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines