首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C++ 類模板練習:設計通用陣列類別操作 Box 物件

     編輯:程式設計綜合問答

需求

定義 Box 類別(長寬高、體積),支援 <, +, == 運算子。設計泛型 Array 提供輸入、排序、查找、求和功能。

關鍵實現


template 
class Array {
    vector data; // 內部用 vector 管理記憶體
public:
    void input() { /* 讀取 n 筆 T 物件 */ }
    void sort() { std::sort(data.begin(), data.end()); } // 需 T 支援 operator<
    void find(const T& val) { /* 二分搜尋或線性 */ }
    T sum() { return std::accumulate(data.begin(), data.end(), T{}); } // 需 T 支援 operator+
};

Box 類別


class Box {
    int a,b,c; public: int V;
    Box(int x,int y,int z):a(x),b(y),c(z),V(x*y*z) {}
    bool operator<(const Box& o) const { return V < o.V; }
    int operator+(const Box& o) const { return V + o.V; }
    bool operator==(const Box& o) const { return V == o.V; }
};

使用


Array arr;
arr.input();
arr.sort();
cout << "總體積: " << arr.sum();

重點

  • 模板類別成員函數定義通常放在 .h 中。
  • 要求類型 T 滿足特定概念(可比較、可加、可預設建構)。
  • C++20 可用 concept 正式限制。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved