类的作用域和定义顺序
C++: Class scope and definition order
我很难找到解决这个问题的方法。本质上,我有一个节点,它有连接到其他节点的输入和输出端口。端口具有不同的属性,我希望将它们组合在一个类中。现在的代码是
class Node
{
private:
std::vector<Port*> m_Input;
std::vector<Port*> m_Output;
...
};
class Port
{
private:
Node* m_Connection;
std::string m_PortName;
...
}
错误是当试图编译Port.cpp时,Node的包含文件说没有声明Port。是否有一种方法可以全局声明类,以便Port可以看到它。比如在顶部有一个函数定义。由于
试试这样:
class Port;
class Node
{
private:
std::vector<Port*> m_Input;
std::vector<Port*> m_Output;
...
};
class Port
{
private:
Node* m_Connection;
std::string m_PortName;
...
}
相关文章:
- c++11评估顺序(未定义的行为)
- 为什么用户定义的函数不按照给定的顺序对相同长度的元素进行排序?
- 在自定义程序中使用本机 Windows 自然顺序排序
- 为什么更改包含 psapi.h 的顺序会产生编译错误?(标识符 BOOL 未定义)
- 交换未定义数据类型中的字节顺序
- 用户定义的转换顺序(以C++为单位)
- 在C++中,当表达式涉及对象时,将表达式赋值到对象中时,是否有定义的操作顺序?
- 为什么在未由语言本身定义的结构字节中的位字段顺序
- 是定义的函数参数的内部执行顺序
- 为什么在定义静态成员变量时不遵循定义顺序
- 顺序自定义类型特征的行为就像一个
- 如何在使用 std::make_tuple 时避免构造函数的未定义执行顺序
- 对定义顺序的向量的子集进行高效排序
- C++ 为类中的集合定义顺序
- 如何在Qt Widget中重新定义Z顺序
- 使用自定义顺序迭代boost multi_index
- 类的作用域和定义顺序
- SFINAE和定义顺序
- c++中函数签名的定义顺序
- C++中的类定义顺序