1、 建立一个类模板Compare,用以比较同一类型的2个变量,包含构造方法、GetMax和GetMin成员方法。 2、重新设计复数类Complex,使得Complex对象也适用于类模板Compare。 3、编程实现一个队列的类模板。
时间: 2024-06-11 19:05:04 浏览: 10
1. Compare类模板的实现:
```c++
template<typename T>
class Compare {
private:
T a, b;
public:
Compare(T a, T b) :a(a), b(b) {}
T GetMax() {
return a > b ? a : b;
}
T GetMin() {
return a < b ? a : b;
}
};
```
2. 重新设计的Complex类模板:
```c++
template<typename T>
class Complex {
private:
T real, imag;
public:
Complex(T real, T imag) :real(real), imag(imag) {}
friend bool operator>(const Complex& a, const Complex& b) {
return a.real > b.real;
}
friend bool operator<(const Complex& a, const Complex& b) {
return a.real < b.real;
}
};
```
3. 队列类模板的实现:
```c++
template<typename T>
class Queue {
private:
T* data;
int front, rear;
int maxSize;
public:
Queue(int maxSize) :maxSize(maxSize) {
data = new T[maxSize];
front = rear = 0;
}
~Queue() {
delete[] data;
}
bool IsEmpty() {
return front == rear;
}
bool IsFull() {
return (rear + 1) % maxSize == front;
}
bool EnQueue(T x) {
if (IsFull()) return false;
data[rear] = x;
rear = (rear + 1) % maxSize;
return true;
}
bool DeQueue(T& x) {
if (IsEmpty()) return false;
x = data[front];
front = (front + 1) % maxSize;
return true;
}
int GetSize() {
return (rear - front + maxSize) % maxSize;
}
};
```