利用模板函数实现Person类对象相加并输出类对象
时间: 2024-03-05 12:51:46 浏览: 58
好的,下面是利用模板函数实现Person类对象相加并输出类对象的示例代码:
```c++
#include <iostream>
#include <string>
using namespace std;
class Person {
public:
string name;
int age;
Person() {}
Person(string n, int a): name(n), age(a) {}
friend Person operator+(const Person& p1, const Person& p2) {
Person result;
result.name = p1.name + " and " + p2.name;
result.age = p1.age + p2.age;
return result;
}
friend ostream& operator<<(ostream& os, const Person& p) {
os << "Name: " << p.name << ", Age: " << p.age << endl;
return os;
}
};
template<typename T>
T add(T a, T b) {
return a + b;
}
int main() {
Person p1("Tom", 20);
Person p2("Jerry", 18);
Person p3 = add(p1, p2);
cout << p3;
return 0;
}
```
在上面的代码中,我们定义了一个Person类,其中重载了"+"和"<<"运算符。然后我们定义了一个模板函数add,它可以接受两个Person类对象作为参数,将它们相加后返回一个新的Person类对象。最后我们在主函数中调用add函数,并将返回值打印输出。
阅读全文