返回指针的函数的返回类型? (C ++)

时间:2015-09-08 09:01:44

标签: c++ function pointers types return

我有一个带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*编译错误。我应该使用的正确返回类型是什么?提前谢谢!

3 个答案:

答案 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是一个类

相关问题