NamedObject template
时间: 2023-08-06 17:06:57 浏览: 35
`NamedObject` 是一个 C++ 模板类,它的作用是封装一个对象,并为其提供一个名字。以下是 `NamedObject` 的定义:
```c++
template<typename T>
class NamedObject {
public:
NamedObject(const std::string& name, const T& value)
: name_(name), value_(value) {}
const std::string& GetName() const { return name_; }
const T& GetValue() const { return value_; }
private:
std::string name_;
T value_;
};
```
`NamedObject` 模板类接受一个类型参数 `T`,表示封装的对象的类型。它包含一个构造函数,用于初始化对象的名字和值,还包含两个成员函数 `GetName()` 和 `GetValue()`,分别用于获取对象的名字和值。
使用 `NamedObject` 模板类可以方便地创建一个具有名字的对象。例如,以下代码可以创建一个名为 `person` 的 `Person` 对象:
```c++
Person p("Alice", 20);
NamedObject<Person> person("person", p);
cout << person.GetName() << ": " << person.GetValue().GetName() << ", "
<< person.GetValue().GetAge() << endl;
```
在这个例子中,我们先创建一个 `Person` 对象 `p`,然后使用 `NamedObject` 模板类将其封装为一个名为 `person` 的对象。最后,我们可以通过 `person` 对象的成员函数获取其名字和值,并打印出来。