가상 및 비가 입자 멤버 함수를 통해 액세스하는 개인 데이터 멤버 (정적 멤버 중 일부)가있는 클래스가 있습니다. 인라인 함수는없고 친구 클래스도 없습니다.클래스 개인 데이터 멤버 순서 변경 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
};
개인 데이터 멤버의 순서 ABI이 경우 나누기를 변경합니까?
class A
{
string str;
static const int static_const_number;
int number; // <-- integer member moved here
bool b;
...
};
편집 종류는 변경되지 않습니다
, 구성원의 순서. 비트 플래그도 사용되지 않습니다. 코드가 공유 라이브러리로 사용되었으므로이 코드에 정적으로 링크되어 있지 않습니다. 저는 리눅스에 있고 컴파일러는 gcc-3.4.3 및 gcc-4.1입니다.
두 경우 모두 인라인으로 제공되므로 생성자와 소멸자를 선언해야합니다. –
@Johannes 예, 선언되었습니다. 설명에서 빠뜨린 것입니다. 그러나 메모를 주셔서 감사합니다. 유용합니다. –