在派生类函数中访问基类的私有结构指针

时间:2014-11-07 07:46:02

标签: c++

----- ------ metaskill.hpp

 typedef struct {
    predicate_func predicate;
    unsigned       enabled;
} frp_predicate;

class baseclass
{
   public:
   baseclass(void);
   frp_predicate **predicate()
   {
       return **mPredicates;
   }
   private:

   frp_predicate     **mPredicates;
};
class derivedclass:baseclass
{
   public:
   void init();
};

metaskill.cpp

#include "metaskill.hpp"
 baseclass::baseclass()
 {
    mPredicates=NULL;
 }
 void derivedclass::init()
 {
     /*private members cannot be accessed error comes
     so changed trying to access using public function of baseclass*/
   //mPredicates = new frp_predicate* [size+1];

    baseclass::predicate() = new frp_predicate* [10];    
 }

这里我访问了mPredicates,它是一个私有成员,我无法将其更改为protected或public。我已经编写了一个访问器函数谓词来访问私有成员mPredicates of baseclass.But仍然我收到错误我做了什么这里错了

1 个答案:

答案 0 :(得分:0)

您不能直接在该类的成员函数之外访问类的私有成员。这是封装的基础。尽管你可以通过使用指针来破解封装。

请说清楚你的意图是什么?