fork(2) download
  1. #include <iostream>
  2. #include <sstream>
  3. #include <vector>
  4. #include <string>
  5. #include <map>
  6. #include <unordered_map>
  7. #include <sys/time.h>
  8. using namespace std;
  9.  
  10. class HogeSDKClass {
  11. public:
  12. HogeSDKClass()
  13. : value_(9999)
  14. {
  15.  
  16. }
  17. void print() {
  18. printf("%d\n", value_);
  19. }
  20. protected:
  21. int value_; // この値は不可侵である
  22. };
  23.  
  24. class HogeSDKClassHack : public HogeSDKClass {
  25. public:
  26. void hackValue() {
  27. this->value_ = 1000;
  28. }
  29.  
  30. };
  31.  
  32. HogeSDKClass* getHogeSDKInstance() {
  33. return new HogeSDKClass(); // これはSDKからやってくる
  34. }
  35.  
  36. int main() {
  37. HogeSDKClass* hoge = getHogeSDKInstance();
  38. hoge->print(); // この値を書き換えたい……。
  39.  
  40. HogeSDKClassHack* hogeHack = static_cast<HogeSDKClassHack*>(hoge);
  41.  
  42. hogeHack->hackValue();
  43. hogeHack->print();
  44.  
  45. return 0;
  46. }
Success #stdin #stdout 0s 3472KB
stdin
Standard input is empty
stdout
9999
1000