在我搞砸了我之前的帖子的描述之后,我坐下来试图表达我的确切意图。
我有一个名为 P 的类,它执行一些不同的目的。我也有 PW,它在 P 上执行一些不同的目的。PW 没有成员变量,只有成员函数。
根据此描述,您会假设代码将如下所示:
class P
{
public:
void a( );
};
class PW
{
public:
PW( const P& p ) : p( p ) { }
void b( );
P& p;
};
class C
{
public:
P GetP( ) const { return p; }
private:
P p;
};
// ...
PW& p = c.GetP( ); // valid
// ...
然而,这带来了一个问题。我不能到处调用没有间接的 P 函数。
// ...
p->p->a( )
// ...
我想做的是调用 p->a( ) 并让它自动确定我想调用 P 的成员函数。
还有一个名为a的 PW 成员并不能真正扩展 - 如果我向 P 添加(或删除)另一个函数会怎么样 - 这将需要添加(或删除)到 PW。