我想知道产生此错误的确切编译器行为。
看看这段代码。
class Base_class
{
public:
Base_class();
};
Base_class::Base_class()
{
//Here it says multiple definitions (If I define the contructor outside)
//If I define this inside class no error
//Or if I make the base class templated no error
//Also if this is in .cpp it works.
}
template<typename T>
class Temp_derived_class:Base_class
{
public:
Temp_derived_class();
int *i;
};
template<typename T>
Temp_derived_class<T>::Temp_derived_class()
{
i = new int[5];
}
这里它说的是多个定义(如果我在外面定义了构造函数)如果我在类内部定义这个没有错误或者如果我使基类模板化没有错误如果这是在 .cpp 它工作。
干杯,CB