Tengo una clase con número de miembros de datos privados (algunos de ellos estáticos), a la que acceden funciones de miembros virtuales y no virtuales. No hay funciones en línea y no hay clases de amigos.¿Cambia el orden de los miembros de datos privados de clase ABI
class A
{
int number;
string str;
static const int static_const_number;
bool b;
public:
A();
virtual ~A();
public:
// got virtual and non-virtual functions, working with these memebers
virtual void func1();
void func2();
// no inline functions or friends
};
¿Cambiar el orden de los miembros de datos privados rompe ABI en este caso?
class A
{
string str;
static const int static_const_number;
int number; // <-- integer member moved here
bool b;
...
};
Editar
Los tipos no se cambian, sólo el orden de los miembros. No se usan banderas de bits también. El código se usa como biblioteca compartida, no hay enlaces estáticos a este código. Estoy en Linux y los compiladores son gcc-3.4.3 y gcc-4.1
Tenga en cuenta que en su caso, deberá declarar un constructor y un destructor, ya que ambos se proporcionan en línea. –
@Johannes Sí, están declarados, solo los extrañé en la descripción. Pero gracias por la nota, es útil. –