报错信息:
LinkList.h:
#include <stdio.h>
template <typename T>
struct Node{
T t;
struct Node<T> *next;
};
template <typename T>
class LinkList {
public:
LinkList(void);//构造函数
~LinkList(void);//析构函数
LinkList(const LinkList &linkList);//拷贝函数
public:
//业务方法
int add(T t,int pos);//添加数据
T& get(int pos);//获取数据
private:
int length;//链表长度
Node<T> *header;//业务节点
};
LinkList.cpp:
#include "LinkList.h"
template <typename T>
LinkList<T>::LinkList(void)//构造函数
{
header = new Node<T>;
header->next = NULL;
length = 0;
}
template <typename T>
LinkList<T>::~LinkList(void)//析构函数
{
Node<T> *tmp = NULL;
if(header == NULL){
return;
}
while (header) {
tmp = header->next;
delete header;
header = tmp;
}
header = NULL;
length = 0;
}
template <typename T>
LinkList<T>::LinkList(const LinkList &linkList)//拷贝函数
{
//不写咯
}
////业务方法
template <typename T>
int LinkList<T>::add(T t,int pos)//添加数据
{
int ret = 0;
Node<T> *current = NULL;
current = &(LinkList<T>::header);//默认指向头部第一个节点(实际上这个节点用不到咯)
for (int i = 0; i < pos && (current->next != NULL); i ++) {
current = current->next;
}
Node<T> *newNode;
newNode->t = t;
newNode->next = current->next;
current->next = newNode;
return ret;
}
template <typename T>
T& LinkList<T>::get(int pos)//获取数据
{
Node<T> *current = NULL;
current = &(LinkList<T>::header);//默认指向头部第一个节点(实际上这个节点用不到咯)
for (int i = 0; i < pos && (current->next != NULL); i ++) {
current = current->next;
}
return current->next;
}
#include <iostream>
#include <string>
#include "LinkList.cpp"
using namespace std;
class Teacher{
public:
Teacher(int age,string name){
this->age = age;
this->name = name;
}
void printTeacher(){
cout << " 年龄: " << age << " 姓名: " << name << endl;
}
private:
int age;//年龄
string name;//姓名
};
int main(int argc, const char * argv[]) {
Teacher t1(24,"zs");
LinkList<Teacher> list;
// list.add(t1, 0);
//
// Teacher t2 = list.get(0);
//
// t2.printTeacher();
return 0;
}
我的编译器是xcode 7.0.1
请大家帮我看看,这是什么原因,万分感谢!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
Teacher类本身没有默认的构造函数,因此Node里面的Tt没法默认构造。
话说你用的啥IDE?
IDE是xcode已经解决,是因为Teacher没有提供默认的构造函数。这明显是xcode应该是编译器使用的C++14标准,你的Node没有声明生成默认构造函数,使用:Node()=default;来声明默认构造函数,还有你的Teacher也没有默认的构造函数。