如何解决C ++中的getter和setter问题
我在C ++中的获取器和设置器有问题。我实现了一个队列,我还实现了一个类Process。我的队列保存进程。我的班级Process具有两个属性:“标识符”和“时间”,还具有设置方法和获取方法。我将时间设置为80。然后的问题是我想将时间修改为50,并且它没有改变。我认为问题出在队列,但我不知道在哪里。这是我的代码片段
Queue<Process> process;
Process x;
x.setIdentifier("Hi");
x.setTime(80);
process.enqueue(x);
process.getElementFront().setTime(50);
process.print();
这是我的队列代码:
class Queue{
private:
int size;
Node <L> *front;
public:
.
.
.
//front()
L getElementFront() const{
return this->front->getElement();
}
这是我的节点代码:
class Node{
private:
L elem;
Node *next;
public:
.
.
.
L getElement() {
return this->elem;
}
这是我的过程类:
class Process{
private:
string identifier;
int time;
public:
Process(){
identifier = "";
time = 0;
}
string getIdentifier(){
return identifier;
}
int getTime(){
return time;
}
void setTime(int time){
this->time = time;
}
void setIdentifier(string identifier){
this->identifier = identifier;
}
friend ostream &operator<<(ostream &o,const Process &p);
};
ostream &operator<<(ostream &o,const Process &p){
o<<"Identifier: "<<p.identifier<<"\n";
o<<"Time:"<<p.time<<"\n";
return o;
}
第一个代码的输出是:时间=80。我应该是时间= 50,但是时间没有修改。
解决方法
我相信您的函数“ getElementFront”将返回您元素的副本,因此您的队列将永远不会受到影响。您可以编写“ setElementFront(int)”之类的函数来直接影响元素或诸如此类。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。