簡體   English   中英

使用在類外部聲明的數據類型

[英]using a data type declared inside a class outside

我是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();

您可以使用以下方法聲明該類型的變量:

DList::DNode myNode;

如果您在其他cpp文件中,請確保#include "DList.h"或該(希望的)頭文件的名稱。 如果它不是頭文件,則應將其移動到一個頭文件,並可能考慮將實現詳細信息移動到.cpp文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM