1

这是我以前的问题: 接受 C++ 字符串和 C 样式字符串的通用类

本杰明林德利的答案似乎是我正在寻找的。他说,既然我只想将它限制为 std::string 和 char const*,那么我应该只使用两个重载:

char getSecondLetter(std::string const & str) { return str[1]; }
char getSecondLetter(char const * str) { return str[1]; }

但是如果我使用两个重载,这些重载方法的参数是数据类型不是通用的。

char getSecondLetter(T const & str) { return str[1]; }

所以数据类型不是 T 或 Str_T,而是 std::string 或 char const*。如果我将这些重载方法用于泛型类,我相信该类不再是真正的泛型。我是对的还是错的?...

4

0 回答 0