• Source
    1. #include <iostream>
    2. using namespace std;
    3.  
    4. class CDummy
    5. {
    6. public:
    7. int ConstCastSolve(const string & sQuestion) const
    8. {
    9. return const_cast<CDummy *>(this)->Answer(sQuestion);
    10. }
    11.  
    12. int HardCastSolve(const string & sQuestion) const
    13. {
    14. typedef int (CDummy::*TConstPtr)(const string &) const;
    15.  
    16. TConstPtr pMethodPointer =
    17. reinterpret_cast<TConstPtr>(&CDummy::Answer);
    18.  
    19. return (this->*pMethodPointer)(sQuestion);
    20. }
    21.  
    22. private:
    23. int Answer(const string & sQuestion)
    24. {
    25. return 42;
    26. }
    27. };
    28.  
    29. int main()
    30. {
    31. CDummy dummyObject;
    32.  
    33. cout << dummyObject.ConstCastSolve("Answer");
    34. return 0;
    35. }
    36.