通过list<Empire*>::iterator访问Empire的成员
时间: 2024-04-01 19:32:29 浏览: 118
empire-web:PowerShell Empire Web界面
可以通过迭代器(*iterator)来访问Empire的成员,然后使用成员访问运算符(.)或箭头运算符(->)来访问Empire的成员变量或成员函数。
以下是一个示例代码:
```c++
#include <iostream>
#include <list>
using namespace std;
class Empire {
public:
Empire(int id, const QString& name) : m_id(id), m_name(name) {}
void printInfo() {
cout << "Empire ID: " << m_id << ", Name: " << m_name.toStdString() << endl;
}
private:
int m_id;
QString m_name;
};
int main() {
list<Empire*> empireList;
empireList.push_back(new Empire(1, "Empire 1"));
empireList.push_back(new Empire(2, "Empire 2"));
// 使用迭代器访问Empire的成员
for (list<Empire*>::iterator it = empireList.begin(); it != empireList.end(); ++it) {
// 访问Empire的成员变量
cout << "Empire ID: " << (*it)->m_id << ", Name: " << (*it)->m_name.toStdString() << endl;
// 调用Empire的成员函数
(*it)->printInfo();
}
// 释放内存
for (list<Empire*>::iterator it = empireList.begin(); it != empireList.end(); ++it) {
delete *it;
}
empireList.clear();
return 0;
}
```
以上代码创建了一个Empire指针的列表,然后使用迭代器访问列表中的Empire对象。在迭代器访问Empire指针时,需要使用箭头运算符(->)来访问Empire对象的成员变量和成员函数。注意要遍历完列表后,释放Empire对象的内存。
阅读全文