開發平台(Platform): (Ex: Win10, Linux, ...)
Linux
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
GCC
問題(Question):
最近剛好看到侯捷的書,書中有個範例蠻特別的就去用GCC試試看
發現編譯會錯誤
書上說class就算沒變成object直取data member會是offset
可是我卻得到編譯錯誤
請問GCC不能這樣取得offset嘛??
謝謝
錯誤結果(Wrong Output):
.cpp: In function ‘int main()’:
1.cpp:13:31: error: invalid use of non-static data member ‘TEST::a’
printf("addr = %p\n",&(TEST::a));
^
1.cpp:9:7: note: declared here
int a;
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
class TEST{
public:
int a;
};
int main() {
printf("addr = %p\n",&(TEST::a));
}