作者:huangxianghuo127 | 来源:互联网 | 2022-12-10 13:44
1> bipll..:
IntList *Numbers = new IntList(10);
Numbers[0] = 1;
cout <
Numbers
是指向IntList的指针类型.从远古时代开始,指针在C系列中就有类似数组的语义,所以Numbers[0]
不是调用,IntList::operator[]
而是仅仅是指针的第一个元素,IntList
你已经在堆上分配了.
在堆栈上创建它:
IntList Numbers(10);
Numbers[0] = 1;
cout <
或者至少正确地解决它:
IntList *Numbers = new IntList(10);
(*Numbers)[0] = 1;
cout <<(*Numbers)[0] <