我有一个带get函数的简单类,它将返回一个指向tail -f C:\path\to\app.log | find "queue size"
对象的指针。当我声明函数返回类型时,我该放什么?
Node.cpp:
Node
Node.h:
#include <iostream>
#include <cstdlib>
using namespace std;
Node* Node::getNext() {
return next;
}
我认为它只是一个#ifndef FLEXSTRING_H
#define FLEXSTRING_H
class Node {
private:
struct node {
int data;
node* next;
node* prev;
};
typedef struct node* nodePtr;
public:
getNext();
};
#endif
对象指针,如Node
,但我收到Node*
编译错误。我应该使用的正确返回类型是什么?提前谢谢!
答案 0 :(得分:2)
在Node.h中,getNext()
的返回类型可能需要为Node *
。您尚未提供任何退货类型。
这与Node.cpp中的定义一致。请注意,在尝试定义#include "Node.h"
的成员函数之前,Node.cpp需要Node
。
您可能也不需要在struct node
的定义内嵌套struct Node
定义。但是,如果您坚持这样做,则需要确定next
的{{1}}和prev
成员所代表的内容,并相应地使用它们。这可能会影响struct node
的返回类型。
答案 1 :(得分:1)
你必须写:
class Node
{
Node * getNext();
}
在C和C ++中,只是一个类型的声明就足以在指针中使用它(不完整的类型)
答案 2 :(得分:1)
尝试在您的cpp中包含Node.h头文件,否则cpp文件不知道Node是一个类