关于友元类的成员函数

coffee_sugar coffee_sugar 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
小弟又来请教诸位大神了……
这次是关于友元函数的。
首先,我知道友元函数怎么去声明了,但是我写的这两个类让我十分纠结应该怎么搞……

class Screen {
public:
//注意这个声明
friend void Window_mgr::clear(ScreenIndex);
typedef std::string::size_type pos;
Screen() = default;
Screen(pos ht,pos wd,char c):height(ht), width(wd),
contents(ht*wd, c){}
Screen(pos ht,pos wd):height(ht),width(wd),contents(ht*wd,' '){};
char get() const
{ return contents[cursor];}
inline char get(pos ht,pos wd) const;
inline Screen &move(pos r, pos c);
Screen &set(char c);
Screen &set(pos ht,pos wd,char c);
Screen &display(std::ostream &os) {
do_display(os);
return *this;
}
const Screen &display(std::ostream &os) const {
do_display(os);
return *this;
}
private:
pos cursor = 0;
pos height = 0, width = 0;
std::string contents;
void do_display(std::ostream &os) const{
os<<contents;
}
};

Screen &Screen::move(pos r, pos c) {
pos row = r * width;
cursor = row + c;
return *this;
}

char Screen::get(pos r, pos c) const{
pos row = r * width;
return contents[row +c];
}

第二个类

class Window_mgr{
public:
using ScreenIndex = std::vector<Screen>::size_type;
void clear(ScreenIndex);
private:
//注意这里,如果没有这个private的话我就能搞定了
std::vector<Screen> screens{Screen(24, 80, ' ')};
};

求大神能当做一个简单的健脑题帮忙解答下……我今天刚入手了c++ primer第五版的习题集,但那个练习题要比我这个简单,看了下也没啥参考价值。所以特来此地求解
...全文

相关推荐

友元类,友元函数,友元成员函数

友元类、友元函数和友元成员函数是C++中实现类间交互的重要方式,它们帮助我们在设计复杂的数据结构和算法时打破封装的限制,提高代码的灵活性和效率。下面我们将深入探讨这三个概念及其工作原理。

ewitt

友元函数、友元类、友元成员函数

友元,顾名思义,是某个类的“朋友”。这个朋友角色的特殊之处在于它可以访问类中所有的成员,包括私有、保护和公有的成员函数和成员变量。这似乎违背了类的封装特性,但这就是友元作为单独的机制出现的原因。有些类需要与其他类进行深♂度 互动,有些函数需要遍历所有类中的成员,这些都是数据封装的例外情况,但也是程序设计中真实会发生的情况。针对这类情况,友元的作用就得以体现了。 在C++中类的友元共有三大类型: 1.友元类 2.友元函数 3.友元成员函数 友元的声明 友元的使用情况具有特殊性,所以所有的友元关系都是单方面的,

yhwang-hub

友元函数和友元类的定义及使用.docx

友元类(Friend Class)友元类是一种特殊的类关系,它允许一个类访问另一个类的私有成员变量和成员函数。

想要offer

C++之友元:友元函数和友元类详解

"C++之友元:深入理解友元函数和友元类"在C++编程中,友元机制是一种特殊的关系,它打破了常规的封装原则,允许非类成员函数(友元函数)访问类的私有和保护成员,而这些通常只对类的内部可见。这种机制

weixin_38558870

简要介绍C++编程中的友元函数和友元类

友元函数可以是全局函数,如上面第一个例子所示,也可以是另一个类的成员函数,如第二个例子所示。

weixin_38673921
评论 6
收藏 已收藏
分享
返回顶部
coffee_sugar
C++ 语言 65,214 成员 250,514 内容