C++ - 使用 std::list,如何打印对象的私有成员的链接列表?
C++ - using std::list, how do you print a linked list of an object's private members?
当我将Unit的成员公开时,它就起作用了。将变量更改为私有变量,如何访问/打印它们?
我的教授还没有教过迭代对象链表的方法(在这种情况下(以及如何访问该对象的私有成员。我确实实现getter和setter吗?我真的很失落,因为我对链表和使用列表库还很陌生。
#include <iostream>
#include <list>
#include <string>
using namespace std;
class Unit {
private:
string name;
int quantity;
public:
Unit(string n, int q){
name = n;
quantity = q;
}
};
void showTheContent(list<Unit> l)
{
list<Unit>::iterator it;
for(it=l.begin();it!=l.end();it++){
//
cout << it->name << endl;
cout << it->quantity << endl;
// cout << &it->quantity << endl; // shows address
}
}
int main()
{
// Sample Code to show List and its functions
Unit test("test", 99);
list<Unit> list1;
list1.push_back(test);
showTheContent(list1);
}
私有说明符的目标是防止从该类外部访问成员。Unit
类的设计是荒谬的,因为你向所有人隐藏了成员,而且你也没有在这个类中使用它们。
您可以打开访问成员,可以添加getter/setter,实现Visitor模式——有很多选项。最简单的方法是打开访问权限(公开所有内容(:你应该根据教授给你的任务进行判断。
顺便说一句,在你的showTheContent
函数中,你正在制作列表的完整副本,这可能不是你打算做的
void showTheContent(const list<Unit>& l)
相关文章:
- 指向设备对象成员的指针
- 访问由unique_ptr传递的对象成员
- 引用对象成员函数的成员函数
- 将 C# 对象(包含静态对象成员)作为参数传递给 C++/CLI 程序
- Lua C API - 从C++分配和使用类的对象成员
- Rapidjson 遍历并获取复杂 JSON 对象成员的值
- 类对象成员变量在调用函数时不会更改
- 对象成员变量还是继承
- C++多态性:有没有办法找到对象成员函数的地址?
- 重载对象成员的比较运算符
- 获取未初始化对象成员的地址是否定义良好?
- 在优先级队列被推送到队列后,如何编辑对象成员
- 为什么在这里调用析构函数,以及在调用该对象析构函数后如何调用对象成员函数?
- 通过 std::bind 从对象成员检索值
- 保留对象成员变量的本地副本
- 有没有办法为静态对象成员定义一个符合开关标准的常量?
- 没有默认构造函数的对象成员的 wig setter
- 对象成员数组C++默认初始化
- 如何在数组中添加对象成员
- 使用聚合创建和关联两个不同的对象成员