【问题标题】:C++: Class scope and definition orderC++:类范围和定义顺序
【发布时间】:2014-07-02 06:44:58
【问题描述】:

我在想办法解决这个问题时遇到了麻烦。本质上,我有一个节点,该节点具有连接到其他节点的输入和输出端口。这些端口具有不同的属性,我想将它们组合在一个类中。我现在的代码是

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。有没有办法全局声明该类,以便端口可以看到它。就像在顶部有一个函数定义一样。谢谢

【问题讨论】:

  • class Port; / class Node;
  • 在定义Node之前只转发声明class Port;
  • class Node* m_Connection;

标签: c++ class scope


【解决方案1】:

试试这样的:

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;
 ...
}

【讨论】:

    猜你喜欢
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多