我想在main.cpp上创建一个模板类,然后在另一个来自另一个header / cpp的类上处理它
继承我的代码:
Main.cpp的
#include <iostream>
#include "test.h"
template<typename B>
class foo{
};
int main() {
return 0;
}
test.h
namespace sn{
class A{
public:
void getint(foo<int> asd); //error because it doesn't know foo
};
}
TEST.CPP
#include<iostream>
#include "test.h"
namespace sn{
void A::getint(foo<int> asd){ //error because it doesn't know foo
}
}
那么如何从main.cpp传递模板类的实例或引入“foo”?我必须改变我的设计吗?
答案 0 :(得分:0)
显而易见的方法是将foo
的定义也移到标题中:
foo.h中:
template<typename B>
class foo{
};
test.h:
#include "foo.h"
namespace sn {
struct A {
void getint(foo<int>);
};
}
从事物的外观来看,test.cpp
将保持不变,main.cpp
只会删除foo
的定义。