Программа получила сигнал SIGFPE, Арифметическое исключение.
xxx :: init (this = 0xbffe47fc, aa = 0x0) в s.cc:1061
1061 цена = 100,0;
Я просто пытаюсь скомпилировать и запустить код без каких-либо изменений на другой машине Linux RH5.6 32bit, и владелец этого приложения скомпилирует его на RH5.3, который не имеет проблем.
GDB BT
B :: INIT
b_init
B :: B
A ::
главный
Вот код
class A : public B
{
A () : a_1(1)
{
init()
}
void init();
int a_1;
};
class B
{
double price;
B()
{
memset(this, 0, sizeof(*this);
b_init(this);
}
int b_init( B* b)
{
return b->init();
}
void init()
{
price = 100.0;
}
};
int main()
{
A a;
}
Я выгляжу очень нормально для меня. Кто-нибудь может пролить свет на это? Спасибо!
Этот тестовый код отлично работает для меня. Там должно быть что-то еще происходит?
#include <iostream>
using namespace std;
struct teststruct
{
int a;
double b;
};
class test_class
{
public:
void init( struct teststruct * );
double getPrice();
private:
double price;
};
void test_class::init( struct teststruct *test )
{
price = 100.0;
}
double test_class::getPrice()
{
return price;
}
int main ()
{
struct teststruct a;
test_class test;
test.init(&a);
cout << "Double " << test.getPrice() << endl;
return 0;
}
выход:
[hendric@Linux-Test-System ~]$ g++ doubletest.cpp
[hendric@Linux-Test-System ~]$ ./a.out
Double 100
Других решений пока нет …