一开始的错误写法如下,疯狂报错error C2512: “staff”: 没有合适的默认构造函数可用。
template <class type> //链表结点类定义
class ListNode
{
//friend class abList <type>;
public:
ListNode()
{
next = NULL;
};
ListNode(type item) //&item是引用吗?直接用item呢?
{
data = item;
}
private:
ListNode <type> *next;
type data;
};
百度解决方法有很多人说,默认构造函数是没有参数的构造函数,让加一个ListNode(){};
亲测没用!!!上面写法里面的ListNode()就是默认构造函数,有没有内容都一样;ListNode(type item)是带参数的构造函数。
还有说什么超前引用都是不存在的,真正的原因就是构造函数写错了!写错了!!!
这个链表节点类用作人员管理系统的异质链表,来看看主函数:
int main()
{
cout << "Hello World!\n";
//abList <person> MyList; //以人员基类为表内容,实现异质链表
staff staff1("秋", "女", 27, "421081199205263320", "教学科");
staff1.Display();
ListNode <staff> MyListNode(staff1);
//MyList.Insert(&staff1);
}
据同学智慧轩理解,要存进节点的staff1是一个对象,有很多数据,所以不能直接存进type data,需要用一个指针指向staff1的内容。所以在结点类模板中将dat