此代碼不會編譯(給出錯誤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