[問題] c++ data member 地址
開發平台(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));
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 39.12.196.18 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1610249199.A.817.html
→
01/10 11:44,
4年前
, 1F
01/10 11:44, 1F
→
01/10 11:45,
4年前
, 2F
01/10 11:45, 2F
→
01/10 12:07,
4年前
, 3F
01/10 12:07, 3F
→
01/10 12:27,
4年前
, 4F
01/10 12:27, 4F
推
01/10 12:38,
4年前
, 5F
01/10 12:38, 5F
→
01/10 12:39,
4年前
, 6F
01/10 12:39, 6F
多型與虛擬(github上有繁體公開版?)
https://github.com/tianshilei1992/polymorphsim_in_cpp
116頁 Pointer to Data Members
是只有以前的Visual C++才能這樣做嘛??
※ 編輯: WangDaMing (39.12.196.18 臺灣), 01/10/2021 12:52:41
→
01/10 15:52,
4年前
, 7F
01/10 15:52, 7F
→
01/10 15:52,
4年前
, 8F
01/10 15:52, 8F
→
01/10 18:33,
4年前
, 9F
01/10 18:33, 9F
→
01/10 18:34,
4年前
, 10F
01/10 18:34, 10F
→
01/10 18:35,
4年前
, 11F
01/10 18:35, 11F
→
01/10 18:39,
4年前
, 12F
01/10 18:39, 12F
→
01/10 18:41,
4年前
, 13F
01/10 18:41, 13F
推
01/10 18:47,
4年前
, 14F
01/10 18:47, 14F
→
01/10 18:49,
4年前
, 15F
01/10 18:49, 15F
→
01/10 18:50,
4年前
, 16F
01/10 18:50, 16F
→
01/10 18:50,
4年前
, 17F
01/10 18:50, 17F
→
01/10 18:50,
4年前
, 18F
01/10 18:50, 18F
→
01/12 16:23,
4年前
, 19F
01/12 16:23, 19F
→
01/12 16:24,
4年前
, 20F
01/12 16:24, 20F
→
01/12 16:25,
4年前
, 21F
01/12 16:25, 21F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章