小编Ada*_*dam的帖子

如何声明两个类,使A有B和B的成员将A的成员标记为朋友?

我试图从C++ Primer第5版开始练习7.32.该练习要求如下:

定义你自己的版本Screen,并Window_mgr在其中clear的成员Window_mgr和朋友Screen.

下面是定义Screen,Window_mgrclear在文中给出.

class Screen
{
  public:
    using pos = std::string::size_type;
    Screen(pos ht, pos wd, char c) : height(ht), width(wd), contents(ht * wd, c) { }
  private:
    pos height = 0, width = 0;
    std::string contents;
};

class Window_mgr
{
  public:
    using ScreenIndex = std::vector<Screen>::size_type;
    void clear(ScreenIndex);
  private:
    std::vector<Screen> screens{Screen(24, 80 ' ')};
};

void Window_mgr::clear(ScreenIndex i)
{
  Screen &s = screens[i];
  s.contents …
Run Code Online (Sandbox Code Playgroud)

c++ class friend forward-declaration

6
推荐指数
1
解决办法
519
查看次数

标签 统计

c++ ×1

class ×1

forward-declaration ×1

friend ×1