如何在不同的文件头上添加类朋友
How to add class friends on different files headers?
我的类 Bloque 是我另一个类用户的朋友,我想将我的用户类的int y
传递给我的 Bloque 类上一个名为 void colision()
的函数。
所以我试了这个:
# user.h #
class user
{
private:
int y;
friend class Bloque;
};
# bloque.h #
class user;
class Bloque
{
public:
void mover();
void colision(user& f);
};
# bloque.cpp #
#include "user.h"
#include "bloque.h"
#include <iostream>
void Bloque::mover(){ colision(user& f); }
void Bloque::colision(user& f){ cout << f.y; }
当我尝试编译它时,我收到两个错误:
In member function 'void Bloque::mover()':
bloque.cpp [Error] expected primary-expression before '&' token
bloque.cpp [Error] 'f' was not declared in this scope
Makefile.win recipe for target 'bloque.o' failed```
您的前向声明看起来是正确的。
问题出在这一行:
void Bloque::mover() {
colision(user& f);
}
变量f
不存在。我不明白你到底想做什么。如果您打算使用user
类型的变量调用Bloque::colision
,则应首先声明它:
void Bloque::mover() {
user us;
colision(us);
}
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 如何在C++中从两个单独的for循环中添加两个数组
- POCO::PostgreSQL:如何将std::vector支持添加到`Binder::bind`
- 如何仅为一个函数添加延迟
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 使用std::transform将一个范围的元素添加到另一个范围中
- 如何将更多文件夹添加到c++include路径
- 如何将元素添加到数组的线程安全函数?
- QT通过C++添加映射QML项目
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- 如何使用重载的相等(==)运算符向测试用例添加描述
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 如何防止clang格式在流运算符调用之间添加换行符<<
- 只能向C++添加一定数量的字符
- Qt和C++:将QLineEdit添加到QTabWidget中
- 将QIcon添加到QTableView单元格
- 为什么我必须在C++中添加一个赋值符号来声明一个数组
- 如何在不同的文件头上添加类朋友
- 我们可以添加一个基于模板参数的朋友类吗
- 我试图在c++中为添加2个复数写朋友函数