我是C++的新手,所以对你们中的几个人来说这是一个愚蠢的问题。

class DList {
  public:
    struct DNode {
      int data;
      DNode* next;
      DNode* prev;
      DNode(DNode* ptr1, DNode* ptr2, int val)
      {
        next = ptr1;
        prev = ptr2;
        data = val;
      }
      ~DNode() {}
      public:
      DNode* getNext() {return next;}
      int getNodeVal() {return data;}
    };

这是我的DList结构。假设我想在其他cpp文件中的此类之外使用数据类型DNode声明DNode类型的数据,我该如何使用它。

最佳答案

这只是名称限定的问题:
DList::Dnode x;
这也适用于从外部引用类中静态声明的任何变量或函数。

class DList {
  public:
    struct DNode {
      int data;
      DNode* next;
      DNode* prev;
      DNode(DNode* ptr1, DNode* ptr2, int val)
      {
        next = ptr1;
        prev = ptr2;
        data = val;
      }
      ~DNode() {}
      public:
      DNode* getNext() {return next;}
      int getNodeVal() {return data;}
    };
    static int counter;
    static int f() {/**/} //do some stateless operation related to the class
};
//...
DList::counter++;
int result = DList::f();

关于c++ - 使用在类外部声明的数据类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9401489/

10-11 22:13