我是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;}
};
这是me.suppose的DList结构我想在其他cpp文件中使用此类之外的数据类型DNode来声明DNode类型的数据。我可以使用它。
答案 0 :(得分:5)
这只是名称资格问题:
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();
答案 1 :(得分:3)
您可以使用以下语句声明该类型的变量:
DList::DNode myNode;
如果您在其他cpp文件中,请确保#include "DList.h"
或其他(希望)头文件的名称。如果它不是头文件,您应该将其移动到一个,并可能考虑将实现细节移动到.cpp文件。