如何使用模板返回字符值
How to return char values with a template
我无法完全理解这些模板在C++中的工作原理,我有一个驱动程序代码,我正在尝试为其编写头文件。 我可以让这段代码进行编译,它应该为第一个字符输出"a",为第二个字符输出"d"。 我在第一个和第二个字符的输出中收到一个无法识别的字母,如果有人可以指出我在这个头文件出错的地方。提前谢谢。
头文件
template <class T>
class Pair
{
private:
T firstChar;
T secondChar;
public:
Pair(const T& , const T&);
T getFirst( );
T getSecond( );
};
template <class T>
Pair<T>::Pair(const T&, const T&)
{
firstChar;
secondChar;
}
template <class T>
T Pair<T>::getFirst ( )
{
return firstChar;
}
template <class T>
T Pair<T>::getSecond ( )
{
return secondChar;
}
驱动程序文件
#include <iostream>
#include "pair.h"
using namespace std;
int main()
{
Pair<char> letters('a', 'd');
cout << "nThe first letter is: " << letters.getFirst();
cout << "nThe second letter is: " << letters.getSecond();
cout << endl;
system("Pause");
return 0;
}
你的构造函数不做任何有用的事情。您希望它使用其参数来初始化成员变量:
template <class T>
Pair<T>::Pair(const T& first, const T& second) :
firstChar(first),
secondChar(second)
{}
如果启用编译器警告,它应该告诉您语句firstChar;
,secondChar;
不执行任何操作。
template <class T>
Pair<T>::Pair(const T&, const T&)
{
firstChar;
secondChar;
}
这个构造函数不做任何事情,它没有任何命名参数,也没有将它们分配给成员属性,也许你想使用:
template <class T>
Pair<T>::Pair(const T& first, const T& second) : firstChar(first), secondChar(second)
{
}
相关文章:
- 为什么 Serial.println(<char[]>);返回随机字符?
- 如何使用Crypto++并为RSA返回可打印的字节/字符数组
- 如何返回/复制unique_ptr<无符号字符[]>的值?
- 在函数中返回无符号字符数组,但不返回指针
- 如何返回实际值(在我的例子中是无符号字符数组)而不是来自 C++ 函数的指针?
- std::stringstream 返回字符 *
- 如何循环访问 cpp 中的函数返回的字符指针数组
- 为什么我的字符* 复印机返回不同的东西?
- strcmp 对于相等的字符序列返回 false
- 如何在数组中返回负字符?
- 为什么当作为常量字符* 返回时会在此处创建临时字符串?[斯特劳斯特鲁普的书例]
- isalpha() 函数为字符串中的字符返回 false
- 使用 const 指针的 C 样式字符返回不正确的结果
- 字符返回函数指针C++
- 'isprint' 为 Solaris 上的不可打印字符返回 true
- 常量字符* 返回类型
- C++字符返回输出符号
- 无符号字符返回值和+=出现问题
- _带有_O_U8TEXT标志的wsopen_s,向缓冲区、中间字符和4个中间俄语字符返回0.VS2010
- 将常量字符* 返回到字符*,然后更改数据