crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Проблема со статическим объектом
ruzik
  опции профиля:
сообщение 10.10.2011, 22:38
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 254
Регистрация: 23.2.2011
Из: Саратов
Пользователь №: 2436

Спасибо сказали: 2 раз(а)




Репутация:   0  


Здравствуйте, есть код:
Geter.h
#ifndef GETER_H
#define GETER_H

#include "rizekmath.h"

class Geter {
public:
    Geter();
    ~Geter();

    static void setRizekMath(RizekMath * rm) { gPRizekMath = rm;}
    static RizekMath * getRizekMath() { return gPRizekMath;}
private:
    static RizekMath * gPRizekMath;
};
#endif

Geter.cpp
#include "Geter.h"

Geter::Geter()
{

}
Geter::~Geter()
{

}

И на него выдает ошибки:

Ошибка 1 error LNK2001: неразрешенный внешний символ ""private: static class RizekMath * Geter::gPRizekMath" (?gPRizekMath@Geter@@0PAVRizekMath@@A)" rizekmath.obj
Ошибка 2 fatal error LNK1120: 1 неразрешенных внешних элементов C:\Users\ruzik\Documents\Visual Studio 2008\Projects\RizekMath\Debug\RizekMath.exe

Если сделать так:
static class Geter {
public:
    Geter();
    ~Geter();

    void setRizekMath(RizekMath * rm) { gPRizekMath = rm;}
    RizekMath * getRizekMath() { return gPRizekMath;}
private:
    RizekMath * gPRizekMath;

То ошибок нет, хотя все тоже самое должно быть по-смыслу, + выскакивают эти предупреждения

Предупреждение 1 warning C4091: static : пропускается слева от 'Geter', когда ни одна переменная не объявлена c:\users\ruzik\documents\visual studio 2008\projects\rizekmath\rizekmath\geter\Geter.h 15
Но статика не срабатывает в этом случае!
Подскажите что не так и в чем разница
Заранее спасибо!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Алексей1153
  опции профиля:
сообщение 13.10.2011, 11:24
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


ruzik, да я как бы и не успел ) Но всё равно, что значит

Цитата
если обозначить класс статичным

?

такое разве бывает ? Если и бывает, то это явно не делание статическими всех членов, что-то другое.

Сообщение отредактировал Алексей1153 - 13.10.2011, 11:25
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.11.2024, 20:00