//定义一个数组类模版,然后以它为基类模板,如何定义一个派生类模板? #include #include // 基类模板:数组类模板 template class Array { protected: std::vector data; public: Array(int size) : data(size) {} void set(int index, const T& value) { data[index] = value; } T get(int index) const { return data[index]; } int size() const { return data.size(); } }; // 派生类模板:增强数组类模板 template class EnhancedArray : public Array { public: EnhancedArray(int size) : Array(size) {} // 新增函数:求和 T sum() const { T sum = 0; for (const auto& element : this->data) { sum += element; } return sum; } // 新增函数:平均值 double average() const { if (this->data.empty()) { return 0.0; } T sum = this->sum(); return static_cast(sum) / this->data.size(); } }; int main() { EnhancedArray arr(5); for (int i = 0; i < 5; ++i) { arr.set(i, i + 1); } std::cout << "Array elements: "; for (int i = 0; i < arr.size(); ++i) { std::cout << arr.get(i) << " "; } std::cout << std::endl; std::cout << "Sum: " << arr.sum() << std::endl; std::cout << "Average: " << arr.average() << std::endl; return 0; }