类方法最后返回类C++

use*_*133 1 c++

所以对于学校我必须创建一个包含时间和数字的Node类(稍后用于插入排序).我还是C++的新手,所以我可能在这里做错了,但每当我调用我的GetNumber()方法时,它只会返回最后一个节点的编号.我的代码如下:

Node.cpp

#include "Node.h"
int n, t;

Node::Node(int number, int time)
{
    n = number;
    t = time;
}


Node::~Node(void)
{
}

int Node::GetTime(void)
{
    return t;
}

int Node::GetNumber(void)
{
    return n;
}
Run Code Online (Sandbox Code Playgroud)

在主要:

Node f(123, GetTickCount());
for (int i = 0; i < 1000; i++){}
Node g(124, GetTickCount());
for (int i = 0; i < 1000; i++){}
Node d(111, GetTickCount());
cout << f.GetNumber() << "  " << f.GetTime()<<endl;
cout << g.GetNumber() << "  " << g.GetTime()<<endl;
cout << d.GetNumber() << "  " << d.GetTime()<<endl;
Run Code Online (Sandbox Code Playgroud)

并输出:

111  168921894
111  168921894
111  168921894
Run Code Online (Sandbox Code Playgroud)

Jos*_*eld 5

int n, t;
Run Code Online (Sandbox Code Playgroud)

您正在声明nt作为全局变量 - 它们不属于任何特定对象.所有的Node旨意看到相同nt对象.

您应该将这些声明为以下成员Node:

class Node {
  // ...
  int n, t;
  // ...
};
Run Code Online (Sandbox Code Playgroud)