根据任务契约审查这个生成的报表类层次。
定义可多态生成摘要、可通过拥有型基类指针销毁,并能在不复制所存数据的情况下检查数值的报表。
C++
#include <iostream>
#include <string>
#include <utility>
#include <vector>
class Report {
public:
Report(std::string title, std::vector<int> values)
: title_(std::move(title)), values_(std::move(values)) {}
std::vector<int> values() const { return values_; }
virtual std::string summary() const { return title_; }
~Report() = default;
protected:
std::string title_;
std::vector<int> values_;
};
class SalesReport : public Report {
public:
SalesReport(std::string title, std::vector<int> values)
: Report(std::move(title), std::move(values)) {}
std::string summary() { return title_ + ": sales"; }
};
void print_report(const Report& report) {
std::cout << report.summary() << '\n';
}
生成代码仅作示例,不代表任何特定模型