C++友元类和派生类访问变量的怪异之处

新手上路,请多包涵

有一个很蠢的问题,其实一般也不太可能这样写,不过C++Primer上讲解内容时用来举例子,突发奇想试下它们的区别,结果郁闷了...

class Quote
{
protected:
    double price = 0.0;
};

class Bulk_quote : public Quote
{
public:
    double test() { return price; }
};

这个不报错

class Quote
{
    friend class Bulk_quote;
protected:
    double price = 0.0;
};

class Bulk_quote :
{
public:
    double test() { return price; }
};

这个报错了

阅读 1.5k
1 个回答

没有对象怎么访问它的成员呢。你要么在Bulk_quote中定义一个Quote对象,然后通过这个对象访问price。要么就是继承了,也就是第一种方式。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题