我确信有一个非常简单的答案,但我无法弄清楚。我编写了一个模板化的类,但我希望通过引用在未模板化的类函数中传递该类。继承人我所拥有的。我收到一堆错误。我需要做的就是如何格式化将模板化的类插入函数的方式,但我很遗憾。谢谢你,如果代码没有真正帮助你,那就很抱歉。
#include <iostream>
using namespace std;
template <typename T>
class Foo {
public:
Foo();
insert(const T& Item)
//And other function, just examples
};
class noFoo(){
void test(Foo <T>& foo);
int i;
int j;
int k
};
template <typename T>
void noFoo::test(Food <T>& foo)}
cout << "hi";
}
int main() {
Foo<char> wr;
test(wr);
return 0;
}
答案 0 :(得分:2)
使test
成为一个功能模板。我还为您纠正了大量语法错误(class noFoo()
?),删除了不必要的代码,并运行clang-format
进行缩进。
#include <iostream>
template <typename T>
class Foo {};
class noFoo
{
public:
template <typename T>
void test(Foo<T> &);
};
template <typename T>
void noFoo::test(Foo<T> &)
{
std::cout << "hi\n";
}
int main()
{
Foo<char> wr;
noFoo{}.test(wr);
}
由于您的问题已标记为d,因此D中的代码相同。
import std.stdio;
class Foo(T) {};
class noFoo
{
public:
void test(T)(Foo!(T))
{
writeln("hi");
}
};
void main()
{
auto wr = new Foo!char;
(new noFoo).test(wr);
}