gpt4 book ai didi

C++,实例化一个通用节点,使用模板存储一个对象的实例

转载 作者:行者123 更新时间:2023-11-28 00:04:27 25 4
gpt4 key购买 nike

我目前正在尝试为数据结构类实现双向链表。

我目前已经实现了一个通用的 Node* 类,并且想要持有我已经实现的另一个类 Student(int i, int j) 的实例。

这就是我在我的主要方法中尝试做的事情:

Student student1 = Student(10,11);
Node<Student()> node1 = Node<Student()> (student1);

这是我收到的错误。当 Node 保存原始数据类型(如 int)时,一切都工作得很好,但我不确定如何解释存储 int 和存储 Student 对象之间的区别。

我会喜欢任何洞察力或插入正确的方向。谢谢。

enter image description here

这是我对 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

最佳答案

不要用(),用类名就可以了。例如:

Node<Student> node1 = Node<Student> (student1);

关于C++,实例化一个通用节点,使用模板存储一个对象的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36538772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com