此代码不会编译(给出错误C2059,C2065,C2072,C2143,C2146,C2447,C2470,C4430) 但如果将B *更改为像int这样的inbuild类型, 有什么建议吗?模板类的成员函数无法返回指向成员结构的指针?
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()
{}
新B()的意义是什么?我们是否在呼叫默认的初始化程序?与“新B”有什么不同? – 2012-07-29 09:42:00
@IshanBhatnagar在这种情况下是没有区别的。你可以使用'new B',它也调用默认的构造函数。 – juanchopanza 2012-07-29 10:02:40