此代码无法编译(给出错误 C2059、C2065、C2072、C2143、C2146、C2447、C2470、C4430)但如果将 B* 更改为 int 等内置类型,则可以。有任何想法吗?
template <typename T>
class A
{
private:
struct B
{
T key;
};
B* foobar(T key);
};
template <typename T>
B* A<T>::foobar(T key)
{
B* ptr = new B;
B->key = key;
return ptr;
}
int main()
{}