【发布时间】:2021-02-13 19:34:50
【问题描述】:
当我编译以下代码时,
#include <iostream>
using namespace std;
class class1;//forward declaration
class class1{
int var;
public:
void setter(int);
friend void getter(class1 o1);
};
class class2{
public:
void getter(class1 o1)
{
o1.var;
}
};
void class1::setter(int v)
{
var =v;
}
int main()
{
int val;
class1 o1;
class2 o2;
cout<<"Enter value\n";
cin>>val;
o1.setter(val);
cout <<"value:\n"<<o2.getter(o1);
return 0;
}
我收到以下错误, G:\C++ 项目\私有访问说明符\main.cpp|6|错误:'int class1::var' 是私有的| G:\C++ 项目\私有访问说明符\main.cpp|16|错误:在此上下文中| G:\C++ projects\private access specifier\main.cpp|32|error: no match for 'operator
在这里,我需要在 class2 中使用函数“getter”访问一个私有成员“var”表单 class1 我知道还有另一种更简单的获取和设置值的方法,但我来这里是为了了解朋友功能的工作原理。 由于我是 C++ 新手,请澄清我的疑问
【问题讨论】:
标签: c++ friend friend-function