не вызывается конструктор для статического объекта
От: levsh  
Дата: 21.01.12 21:10
Оценка:
Здравствуйте.
Имеется обычный класс classA, в котором есть статический объект другого класса classB. Проблема в том, что не вызывается конструктор класса classB.
Код примерно следующий:

file classA.h
classA
{
static classB<int> b;
public:
static void fo ()
{
    b.func();
}
};


file classA.cpp
classB<int> classA::b;



file classB.h
template<typename T>
classB
{
public:
classB()
{
    //вот сюда не заходит
}
void func()
{
    //ошибка, т.к. в конструкторе не были проинициализированы данные
}
};


и main.cpp

int main()
{
    classA::fo();
    while(1)
    {}
}


если же сделать так, то все работает

int main()
{
    classA a = new classA();
    classA::fo();
    while(1)
    {}
}


Компилятор GCC под ARM.
В обычном GCC все работает.
c++ конструктор gcc arm статический
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.