我正在學習使用C++進行投射,後面的代碼對我來說很神奇。轉換爲整數指針
#include <iostream>
using namespace std;
class Base {
public:
virtual void f() { }
};
#define SOME_VALUE 8
int main() {
cout << SOME_VALUE <<endl;
getchar();
}
輸出爲:8
的代碼非常簡單,但什麼類型SOME_VALUE的? int,還是double或char?更復雜的
後:
#include <iostream>
using namespace std;
class Base {
public:
virtual void f() { }
};
#define SOME_VALUE 8
int main() {
cout << (Base*)SOME_VALUE-SOME_VALUE <<endl;
getchar();
}
輸出是:FFFFFFE8
在此之後的代碼,我能理解SOME_VALUE是數值型。我也測試sizeof(SOME_VALUE)和輸出是4.但是,如果SOME_WHAT是數字,它如何改變爲對象指針?以及如何對象指針可以減去整數?
我記得C++有'typeof'函數。檢查它,是的。但它是主要的延伸。 – gaussblurinc