我有一个模板化的课程pair,我想在课堂外编写一个show函数来做一些想象.在明确指定模板类型时,它都按预期工作:coutshow
#include <iostream>
template <class A_Type>
class pair
{
public:
A_Type a0;
A_Type a1;
};
void show(const pair<double> & p) {
std::cout << p.a0 << std::endl;
std::cout << p.a1 << std::endl;
}
int main() {
pair<double> p;
p.a0 = 1.2;
p.a1 = 1.3;
show(p);
}
Run Code Online (Sandbox Code Playgroud)
我想show忘记模板类型.
任何提示?
您可以将show功能更改为:
template<typename DataType>
void show(const pair<DataType> & p) {
std::cout << p.a0 << std::endl;
std::cout << p.a1 << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
或者更好的方法(在我看来)是使show类的函数成员:
template <class A_Type>
class pair {
public:
A_Type a0;
A_Type a1;
void show() const {
std::cout << this->a0 << std::endl;
std::cout << this->a1 << std::endl;
}
};
Run Code Online (Sandbox Code Playgroud)
然后简单地说:
int main() {
pair<double> p;
p.a0 = 1.2;
p.a1 = 1.3;
p.show();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1059 次 |
| 最近记录: |