无法使用 "Friend" 到达不同类中的向量
Cannot reach a vector in a differend class using "Friend"
我有两个班:company
和cpworker
。
我试图将公司中的矢量传递给cpworker
的函数,尽管当我试图到达矢量时,它不让我:
在company
类中:
vector<project> projects;
friend void cpworker::registerWork();
在cpworker
类中:
void cpworker::registerWork()
{
for (int i = 0; i < company.projects.size(); i++)
{
}
}
正如你所看到的,我试图达到向量的大小,但它不让我…此外,我没有使用get
方法来返回项目的大小,因为我需要在循环中完全访问它。
下面是我得到的错误(都在for循环行中):
* left of .projects must have class/struct/union
* left of .size must have class/struct/union
* type name is not allowed
company
是一个类,除非项目被声明为静态,否则你不能在没有类实例的情况下访问它。创建实例或使项目成为静态成员。
不可能创建friend
声明的成员函数,您可以将全局函数或整个类声明为友元,参见:c++ ref,友谊和继承。
一般来说,使用friend根本不是一个好的设计思想,因为它将类强耦合在一起。更好的解决方案将是耦合接口(无论如何都不需要公开可见)。在少数情况下,这可能是一个好的设计决策,但这几乎总是适用于内部细节。
相关文章:
- 写入向量<向量<bool>>
- 函数向量_指针有不同的原型,我可以构建一个吗
- std::向量与传递值的动态数组
- 将值指定给向量(2D)的向量中的某个位置
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 如何使用向量的template_back函数
- 尝试通过多个向量访问变量时,向量下标超出范围
- 如何通过派生类函数更改基类中的向量
- C++从另一个类访问公共静态向量的正确方法是什么
- 如何将ampl中的集合表示为c++中的向量
- 变量没有改变?通过向量的函数调用
- C++不同类别的向量
- 不同类的向量
- 如何设置一个 std::vector 与另一个,其中两个是不同类的向量?
- 如何在具有相同基类的两个不同类中获取向量
- 如何在类中用不同类的对象填充向量
- 指向相同类类型设计可行性的指针向量
- 来自不同类的对象向量
- 将元素插入到不同类的向量中
- 无法使用 "Friend" 到达不同类中的向量