利用模板函数实现Person类对象相加并输出类对象
时间: 2024-03-05 17:49:48 浏览: 18
好的,我可以通过模板函数来实现Person类对象相加并输出类对象。以下是示例代码:
```cpp
<iostream>
class Person {
public:
Person(int age, std::string name) : age(age), name(name) {}
friend Person operator+(const Person& p1, const Person& p2) {
return Person(p1.age + p2.age, p1.name + " " + p2.name);
}
friend std::ostream& operator<<(std::ostream& os, const Person& p) {
os << "Name: " << p.name << ", Age: " << p.age;
return os;
}
private:
int age;
std::string name;
};
template<typename T>
void print(const T& t) {
std::cout << t << std::endl;
}
int main() {
Person p1(20, "Tom");
Person p2(25, "Jerry");
print(p1 + p2);
return 0;
}
```
在上面的示例代码中,我们定义了一个Person类,重载了加法运算符和输出运算符。然后定义了一个模板函数`print`,用于输出任意类型的对象。在`main`函数中,我们创建了两个Person对象并相加,然后将结果传递给`print`函数输出。输出结果为:
```
Name: Tom Jerry, Age: 45
```
因此,我们成功地实现了Person类对象相加并输出类对象。