当前位置: 首页 > news >正文

【C++ Primer Plus习题】10.8

问题:

这里是引用

解答:
main.cpp

#include <iostream>
#include "List.h"
using namespace std;int main()
{Item item = 0;List list;cout << "请输入item(0结束):";cin >> item;while (item!=0){cin.get();list.add(item);cout << "请输入item(0结束):";cin >> item;}list.visit(visit_Item);return 0;
}

List.h

#pragma oncetypedef unsigned long Item;void visit_Item(Item&);class List
{
private:enum{MAX=10};Item m_items[MAX];int m_top;
public:List();~List();bool isempty()const;bool isfull()const;bool add(const Item& item);void visit(void (*p)(Item&));
};

List.cpp

#include "List.h"
#include <iostream>
using namespace std;List::List()
{this->m_top = 0;
}
List::~List()
{}
bool List::isempty()const
{return this->m_top == 0;
}
bool List::isfull()const
{return this->m_top == MAX;
}
bool List::add(const Item& item)
{if (isfull()){cout << "列表已满,无法添加!" << endl;return false;}this->m_items[this->m_top++] = item;return true;
}
void List::visit(void (*p)(Item&))
{for (int i = 0; i < this->m_top; i++){p(this->m_items[i]);}
}void visit_Item(Item&item)
{cout << "item: " << item << endl;
}

运行结果:
在这里插入图片描述

考查点:

  • 数据结构顺序表
  • 函数指针

2024年9月4日16:53:49


http://www.mrgr.cn/news/19597.html

相关文章:

  • 我的大模型岗位面试总结!太卷了!!!—我面试了24家大模型岗位 只拿了9个offer!
  • pod基础和镜像拉取策略
  • mysql实用系列:字段类型转换该怎么去转
  • YashanDB产品调优实战:分享日常调优技巧及提升系统性能的实战经验
  • 浅谈前端编码思路和编码习惯对项目质量的影响(一)
  • 佰朔资本:人民币涨超百点,“牛市旗手”拉涨!创业板指、深成指低开高走
  • 查询电脑上已经连接的wifi密码
  • 深入理解 Java 8 Stream API
  • 10 万元预算,竟能打造满足第一性原理计算的高性价比服务器
  • Tomato靶场渗透测试
  • CargosettlementController
  • css虚线边框可以调整间距实现
  • Git代码托管仓库01
  • 【C++基础】构造函数和他的初始化列表
  • PAT甲级(Advanced Level) 1001 A+B Format
  • jmeter使用——接口测试事知识点
  • 海康二次开发学习笔记13-从Group外部输入图像
  • opencv全面详解教程
  • 浅谈人工智能之基于AutoGen Studio+litellm+ollama构建model
  • 2024年【化工自动化控制仪表】考试资料及化工自动化控制仪表找解析