c++类模板根据不同字符串来创建不同的类
时间: 2023-07-30 13:05:49 浏览: 40
是的,C++类模板可以根据不同的参数来创建不同的类。可以使用模板参数来表示不同的字符串,并将其作为类名的一部分。
下面是一个示例代码,展示如何创建一个类模板,根据不同的字符串参数来创建不同的类:
```c++
#include <iostream>
#include <string>
using namespace std;
template <typename T>
class MyString {
public:
MyString(T str) : str_(str) {}
void print() { cout << str_ << endl; }
private:
T str_;
};
int main() {
MyString<string> s1("Hello");
MyString<string> s2("World");
MyString<int> s3(123);
s1.print();
s2.print();
s3.print();
return 0;
}
```
在这个示例代码中,我们定义了一个类模板 `MyString`,它有一个模板参数 `T`,用来表示不同的字符串类型。在 `main` 函数中,我们使用了三次 `MyString` 类模板,分别传入了不同的字符串参数。其中,前两次使用了 `string` 类型的字符串参数,创建了两个不同的 `MyString<string>` 类型的对象;第三次使用了 `int` 类型的参数,创建了一个 `MyString<int>` 类型的对象。通过调用 `print` 函数,我们可以看到每个对象打印出了不同的字符串或整数。
这个示例代码只是一个简单的例子,你可以根据自己的需求来定义更加复杂的类模板,来实现根据不同字符串来创建不同的类。