Вопрос есть 2 формы в обеих подключен MyHeader.h в этой хедере обьявлен класс, так вот как мне создать объект что бы он был виден в обоих формах?Так как если я создам в одном то в другом его естественно не видно, как быть? как создать глобальный объект?
20 марта 2010 в 0:05
объявляй extern'ом
16 марта 2010 в 9:03
спс попрбоую
15 марта 2010 в 23:03
кстати еще надо где-то выделенную под объект память удалить =)
наверное можно заменить на
static public C& getMyGlobalObject()
{
static C c();
return c;
}
15 марта 2010 в 23:00
вариантов много в зависимости от того что тебе нужно – какова сущность объекта, как он взаимодействует с остальной программой и т.п.
например можно так
MyHeader.h
class C
{
static public C* getMyGlobalObject()
{
static C* c = 0;
if(c != 0)
{
c = new C();
}
return c;
}
};
а использовать в программе так
#include "MyHeader.h"
C* globalObject = C::getMyGlobalObject();
ЗЫ. давно на плюсах не писал, мб код неправильный.
ЗЫЫ. читай GoF шаблоны проектирования, Мейерса – Эффективный С++ и т.п. Гугл в помощь