gpt4 book ai didi

c++ - 模板化类中的模板函数

转载 作者:行者123 更新时间:2023-11-30 02:42:16 25 4
gpt4 key购买 nike

我有一个模板化类,我想在该类中使用创建一个模板化函数。我现在似乎不知道该怎么做。

我把它归结为一个简单的程序:

#include <iostream>
template<typename TInputType = short,
typename TInternalType = float>
class MyClass
{
public:
void Print();
template<typename TAnotherType> void DoSomething(TAnotherType t);
};

template<typename TInputType, typename TInternalType>
void MyClass<TInputType,TInternalType>::Print()
{
printf("whats up\n");
}
template<typename TInputType, typename TInternalType, typename TAnotherType>
void MyClass<TInputType,TInternalType>::DoSomething(TAnotherType t)
{
std::cout << "whats up:" << t << std::endl;
}

int main() {

MyClass<> tst;
tst.Print();
tst.DoSomething<int>(10);
std::cout << "!!!Hello World!!!" << std::endl;
return 0;
}

我收到错误:不完整类型的无效使用或错误:模板重新声明中的模板参数过多

最佳答案

好吧......我一直在试验,我想通了。你需要两次模板调用

...
template<typename TInputType, typename TInternalType>
template<typename TAnotherType>
void MyClass<TInputType,TInternalType>::DoSomething(TAnotherType t)
{
std::cout << "whats up:" << t << std::endl;
}
...

关于c++ - 模板化类中的模板函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27283261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com