範例

class MyClass;
typedef void (MyClass::*FPointer)();

class Data {
};

class MyClass {
public:
FPointer getFunction() { return &MyClass::privateFunction; } 
Data& getDataC() { return c; }
protected:
Data * getDataD();
Data c;
private:
Data d;
void privateFunction();
};

Data* MyClass::getDataD() { return &d; }

解決方案
變更 private 成員的範圍或傳回常數。

class MyClass;
typedef void (MyClass::*FPointer)();

class Data {
};

class MyClass {
public:
 
Data& getDataC() { return c; }
Data c;
protected:
FPointer getFunction() { return &MyClass::privateFunction; }
void privateFunction();

const Data * getConstDataD();
private:
Data d;
};

const Data* MyClass::getConstDataD() { return &d; }