学习之旅

一起进步,一起成长。
修改类protected成员的方法
今天做CBitmap的动态换肤的时候有下面的收获。记下来
现有类A及其对象a。
class A
{
   protected:
     int x = 10;
};
A a;
如果改变a中x的值。
直接a.x = 11当然不行。
达到修改a中x的值为11的做法是
class B : public A
{
   A* pa = null;
   B(A *a)
    {pa = a;}
   inline void setX()
   {
     *(int *)(pa + &x - this) = 11;
   }
};
使用内联函数提高效率

posted on 2008-10-24 17:12  zuogang  阅读(487)  评论(0编辑  收藏  举报