在函数参数中创建友元类实例
Creating Friend Class instance in Function parameters
我是C++的新手。我需要将一个类的实例声明为另一个类中函数的参数,并将参数实例声明为友元。我用一个例子来说明。
class foo(){
private:
void a(){
// function definition
}
}
class other_foo(){
public:
void b(foo f){
// function definition
}
}
在上面的例子中,我需要将类other_foo声明为 foo 的朋友,以便我可以使用 foo 类的私有函数"a"。我已经阅读了许多其他参考资料,但没有关于它是否真的可能的明确指南。如果没有,您能提出解决方法吗?我试图在类 foo 定义中将other_foo声明为朋友,但编译器抛出了一个错误,other_foo私有方法无法访问。我还尝试在参数本身中将实例声明为"friend foo f",但编译器为此抛出了一个错误。我实际上需要在哪里声明类other_foo是类 foo 的友元类?
class foo{
private:
void a(){
// function definition
}
friend class other_foo;
};
class other_foo{
public:
void b(foo f){
// function definition
}
};
现在other_foo可以访问foo
的私人成员。类名前面的括号是不必要的,;
类定义之后添加。
相关文章:
- C++模板来检查友元函数的存在
- 模板类无法识别友元运算符
- 如何使用单独文件中的派生类访问友元函数对象
- 模板化的类和友元函数
- 为什么创建友元类的实例会导致"undefined reference to"错误?
- 如何在嵌套类中正确使用友元声明?
- 友元函数无法访问私有数据成员 (c++)
- 继承和友元函数,从基类访问受保护的成员
- 将子类方法声明为基类的友元
- 如何在友元函数中使用静态成员而不添加前缀 [类名]::
- 在将函数声明为友元时,尖括号的含义是什么?
- 在模板类之外定义友元函数的正确方法是什么?
- 2个模板化类的非模板友元函数未定义引用错误
- 未定义的类模板不会实例化以检查友元函数
- 与参数匹配的友元模板函数实例化
- 为什么我不能实例化其构造函数在友元类中私有的类
- C++:用友元类限制对象实例化
- 强制实例化友元函数
- 友元声明和显式模板实例化声明
- 在函数参数中创建友元类实例