※ 引述《kdok123 (小天)》之铭言:
: 不好意思我是C++新手...
: 有个class长这样
: class test{
: public:
: test();
: ~test();
: private:
: test *node;
: };
: test::test()
: {
: node = new test;
: }
test::test()
{
cout << "i: " << endl;
node = new test;
}
你改成这样跑跑看, 也许就知道了。
: test::~test()
: {
: free(node);
: }
: int main()
: {
: test *head = new test;//这个地方就爆掉了
: return 0;
: }
: 大概跑了一次知道是constructor里不能再new了,不过为什么呢?
: 我只是想要把物件指标head里的node给定一个new的空间而已呀?
: 大概有想过应该是我外面new了一个test的容量
: 可是里面又要new一个test,这样双倍的test他会吃不消
: 所以我又试了
: test *head = new test[2];
: 但还是不行
: 最后是把constructor拿掉,把test *node宣告成public
: 从main里用物件去申请node的空间才行
: 想请问这中间的空间分配问题出在哪里了??