質問
例えば、第三者が作ったNumberというクラスが存在していたとして、その中に
1, 2, 3, 4というメンバ変数があったとします。
僕はその中から2, 3だけを取り出して、自前のクラスに保存したいです。
可能でしょうか?(実際には1や4の場所にはただの変数だけではなく、クラスポインタとかも存在している想定です)
コードの雛形
以下のコードに何らかを足して実装したいところです
cpp
1class MyNums { 2public: 3 int x2, x3; //2と3が入るべき変数 4} 5 6#define NumberAddress 0x313B5B0 //Numberクラスのインスタンスがこのアドレスに存在すると仮定します 7 8int main() { 9 MyNums* mynums = (MyNums*)NumberAddress; //特定のアドレスを始点にして自前クラスに入れる 10 std::cout << mynums->x2 << std::endl; 11}
このコード全体的に間違ってないといいんですがm(_ _)m
個人的な考えでは、コンストラクタなどでthisのアドレスに整数型分のサイズを足してずらすようなことをすればいい気がするんですが、自分で試したものは全部うまく動きませんでした。
MyNums() { this->x2 = *(uint32_t*)this + 0x4 }
By the way
この初期化方法ってコンストラクタ呼ばれるんでしょうか?
MyNums* mynums = (MyNums*)NumberAddress;
回答1件
あなたの回答
tips
プレビュー