【发布时间】:2021-10-21 19:41:32
【问题描述】:
Node.cpp 代码:
#include "Node.h"
using namespace std;
template <typename t>
Node :: Node(t nodeDate){
data = nodeData;
}
Node.h 代码:
#ifndef NODE_H
#define NODE_H
using namespace std;
template <typename t>
class Node{
public:
Node(t nodeData);
private:
Node *nextNode;
type data;
friend class LinkedList;
};
#endif
cpp 类中的 Node :: Node(t nodeDate) 给出“名称后跟 '::' 必须是类或命名空间名称”,我不知道为什么,因为我有 include 语句
【问题讨论】:
-
不要
using namespace std;在头文件中。在任何地方都已经够糟糕了,但在头球上真的很糟糕。您也不能拆分模板代码。全部放在头文件中。 -
Node::Node->Node<t>::Node。您的代码也有一些错别字... -
你的错误是相当字面的。
Node ::无效,因为Node不是类或命名空间。这是一个模板。Node<t>将是一个类。 -
除了“不要
using namespace std;”之外,这段代码中没有使用std中的任何内容,因此该指令没有完成任何事情。
标签: c++ templates constructor declaration function-definition