----- ------ 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仍然我收到错误我做了什么这里错了
答案 0 :(得分:0)
您不能直接在该类的成员函数之外访问类的私有成员。这是封装的基础。尽管你可以通过使用指针来破解封装。
请说清楚你的意图是什么?