【发布时间】:2016-04-11 02:12:57
【问题描述】:
我目前正在尝试为数据结构类实现双向链表。
我目前已经实现了一个通用的 Node* 类,并且想要保存我已经实现的另一个类 Student(int i, int j) 的实例。
这是我试图在我的主要方法中做的事情:
Student student1 = Student(10,11);
Node<Student()> node1 = Node<Student()> (student1);
这是我收到的错误。 当 Node 保存像 int 这样的原始数据类型时,一切都工作得很好,但我不确定如何解释存储 int 和存储 Student 对象之间的区别。
我希望有任何见解或朝着正确的方向前进。 谢谢。
这是我的 Node 实现。
#ifndef NODE_H
#define NODE_H
template <class T>
class Node
{
public:
Node();
Node(T k);
virtual~Node();
T key;
Node<T>* prev;
Node<T>* next;
};
#endif
//default constructor
template <class T>
Node<T>::Node()
{
prev = NULL;
next = NULL;
}
template <class T>
Node<T>::Node(T k)
{
prev = NULL;
next = NULL;
key = k;
}
template<class T>
Node<T>::~Node()
{
//implement
}
学生.cpp
#include "Student.h"
Student::Student()
{
mArrivalTime = 0;
mTimeNeeded = 0;
}
Student::Student(int arrivalTime, int timeNeeded)
{
mArrivalTime = arrivalTime;
mTimeNeeded = timeNeeded;
}
Student::~Student()
{
//implement
}
int Student::getArrivalTime()
{
return mArrivalTime;
}
int Student::getTimeNeeded()
{
return mTimeNeeded;
}
学生.h
#ifndef STUDENT_H
#define STUDENT_H
using namespace std;
class Student
{
private:
int mArrivalTime;
int mTimeNeeded;
public:
Student();
Student(int arrivalTime, int timeNeeded);
~Student();
int getArrivalTime();
int getTimeNeeded();
};
#endif
【问题讨论】:
标签: c++ templates object generics nodes