#property strictclass A
{
A* item;
int num;
public:
A(int p=10){num=p;item=NULL;} ~A(){if(CheckPointer(item)==POINTER_DYNAMIC) delete item;}
A* operator=(A* par){ item = par; return&this; }
A* operator~(){ return item; }
intoperator-(){ return num; }
};
voidOnStart()
{
A a = new A(20);
printf("В автообъекте %i (%i) сохранен динамический объект %i (%i), который он в конце своего цикла сам уничтожает...",&a,-a,~a,-~a);
}
所以你提议完全禁止指针的隐式命名? 我想这里的很多人不会对此感到高兴。
让每个人都有一个选择。
我当然不希望有这种把戏。
嗯,这不用说了。有一个内存泄漏。
你说是内存泄漏吗?这个怎么样?)))
你说是内存泄漏吗?这个怎么样?)))
delete item;因此,它假定受试者已经准备好被这样对待。有多少人预见到这种可能性?
因此,这假定对象准备被这样对待。很多人规定了这种可能性吗?
我认为,如果有人写了new这个词,他们应该清楚地知道相应的delete这个词在代码的其他地方的位置。
让每个人都有一个选择。
我当然不需要这种伎俩。
我已经在MQL4中使用它。如果语言语法 相同,那么它将如何工作?
那么,作为对这种行为的保护,我们可以在一个类中创建一个私有方法。
坦率地说,我不认为这里有什么问题。 如果你给一个类对象赋值,你就会先验地认为复制操作符会被调用。你想要,你就能得到。如果有一个指针或一个对象,有什么区别呢? 类的类型是一样的。 你不能分配任何左手的类。这就是为什么这一切看起来更像一个闲置的孔。
相反的情况,指针在左边,则是另一回事。 在那里,你可以期望给指针分配一些东西,但结果却是在复制一个对象。
相反,指针在左边 的情况则不同,在那里你可能期望给指针分配一些东西,但结果是你在复制一个对象。
而且你不能禁止这一点,否则当你真正需要的时候,你将无法复制该对象。
因此,你必须让一切保持原状。只要意识到你在做什么。
而且你不能禁止它,否则当你真正需要的时候,你将无法复制该对象。
最后,你必须让它保持现状。 只是要注意你在做什么。
О!这是最主要的事情。
这里有很多人知道如何驾驭内存管理的模式吗?了解AUTOMATIC和DYNAMIC的区别。
并听说过关于STATIC和BASED的事情(虽然这不是必须的)。
而且你不能禁止它,否则当你真正需要的时候,你将无法复制该对象。
最后,你必须让它保持现状。只要意识到你在做什么。
为什么不能用呢? 有* 和& 运算符可以将其减少到所需的程度。
哪里有*?