c – 使用模板构造函数创建模板类对象

c – 使用模板构造函数创建模板类对象,第1张

概述我在从模板类创建类对象时遇到问题,在模板类中我需要构造函数也是模板并在创建对象时接受参数.但是,当我尝试创建对象时,我收到一条错误消息,指出我引用了一些不存在的内容. 这是我的代码: using namespace std;#include <cstdlib>template <class Node_Type>class BinaryTree {public: BinaryTr 我在从模板类创建类对象时遇到问题,在模板类中我需要构造函数也是模板并在创建对象时接受参数.但是,当我尝试创建对象时,我收到一条错误消息,指出我引用了一些不存在的内容.

这是我的代码:

using namespace std;#include <cstdlib>template <class Node_Type>class BinaryTree {public:    BinaryTree(Node_Type);    BinaryTree(Node_Type,Node_Type);    BinaryTree(Node_Type,Node_Type,Node_Type);    bool isEmpty();    Node_Type info();    Node_Type inorder();    Node_Type preOrder();    Node_Type postorder();private:    struct Tree_Node{    Node_Type Node_Info;    BinaryTree<Node_Type> *left;    BinaryTree<Node_Type> *right;};Tree_Node *root;};#endif

和我的.cpp:

template <class Node_Type>BinaryTree<Node_Type>::BinaryTree(Node_Type rootNode) {    root = rootNode;    root->left = NulL;    root->right = NulL;}

.cpp还有更多,但它只是其他功能成员无关紧要.我上面显示的构造函数是我无法工作的.

在我的主要内容中,我试图通过调用声明我的对象:

BinaryTree<char> node('a');

但是当我尝试这个时,指出:

undefined reference to `BinaryTree<char>::BinaryTree(char)'

我一直试图解决这个问题两天了.我用Google搜索了我能想到的每个主题,并在Stack Overflow和其他来源上阅读了无数的例子,没有任何帮助.谁能解释一下我的问题是什么?我知道如何完成我的项目,如果语法在C语言中不那么荒谬,我现在就完成了.提前致谢!

解决方法 模板代码应该在实例化时可见,这意味着函数的定义也必须在标题中. 总结

以上是内存溢出为你收集整理的c – 使用模板构造函数创建模板类对象全部内容,希望文章能够帮你解决c – 使用模板构造函数创建模板类对象所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1236634.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存