1、没有引用的情况:
#include <iostream>
#include <queue>
using namespace std;
class Person
{
public:
queue<int>que;
public:
queue<int> getQueue()
{
return que;
}
void push(int a)
{
que.push(a);
}
void pop()
{
que.pop();
}
};
int main() {
Person p;
for (size_t i = 0; i < 10; i++)
{
p.push(i);
}
std::cout<<"弹出前元素个数:"<<p.getQueue().size()<<std::endl;
p.getQueue().pop();
p.getQueue().pop();
p.getQueue().pop();
std::cout<<"弹出后元素个数:"<<p.getQueue().size()<<std::endl;
return 0;
}
实际上p.getQueue()返回的是一个副本,并不是返回成员变量
输出如下:
2、采用引用:
#include <iostream>
#include <queue>
using namespace std;
class Person
{
public:
queue<int>que;
public:
queue<int>& getQueue()
{
return que;
}
void push(int a)
{
que.push(a);
}
void pop()
{
que.pop();
}
};
int main() {
Person p;
for (size_t i = 0; i < 10; i++)
{
p.push(i);
}
std::cout<<"弹出前元素个数:"<<p.getQueue().size()<<std::endl;
p.getQueue().pop();
p.getQueue().pop();
p.getQueue().pop();
std::cout<<"弹出后元素个数:"<<p.getQueue().size()<<std::endl;
return 0;
}
输出如下: