class-name object-name = new constructor-name()拋出一個錯誤(第16行代碼) 從這我可以推斷出new返回一個指針,我的結論是否正確?此外,如果新的不起作用,這是否意味着對象someObject被分配在堆棧上,而不是堆?如果我想在堆上創建一個對象怎麼辦?爲什麼新的操作符在這裏拋出錯誤?
#include<iostream>
using namespace std;
class someClass
{
public:
int x;
someClass()
{
x=6;
}
};
int main()
{
someClass someObject;
someClass *pointerObject;
someObject = new someClass(); //This line throws error
pointerObject = new someClass();
cout<<someObject.x<<endl<<pointerObject->x;
return 0;
}
P.S:我知道這個問題是模糊的,但我不能把它更好的話,我的不便深表歉意。
這段代碼沒有編譯,應該是'someClass * someObject';' –
'someObject'已經是一個對象了。這不是Java或C#。 – WhozCraig
在Java或C#中,您使用new來創建對象。在C++中,你很少這麼做,通常你只是通過聲明來創建對象。 'someClass someObject;'創建一個對象,不需要'new'。 – john