我将举一些例子并解释一下.首先,我声明一些对象
CString* param = new CString[100]
当我宣布这个时,我的记忆会增加一点,因为它是一些实现的字符串.然后我将这个对象存储在一些CString列表中
List<CString> myList = new List<CString>; // new list of CString
myList.add(param);
Run Code Online (Sandbox Code Playgroud)
这是我的问题:我想知道,当我删除myList时,我的参数不会被删除,对吧?参数中的记忆仍然存在.
我误解了吗?
该代码将无法编译,因为myList保存对象,而不是指针,因为它myList是一个对象,而不是一个指针,所以new在那里是非法的:
List<CString> myList;是一个类型的对象List<CString>.new List<CString>;返回一个List<CString>*.param是一个CString*.myList.add()期待一个CString,而不是一个CString*.
一句话:这些都是基本概念,拿一本好书并阅读.C++是一种复杂的语言,您不能仅从示例片段中学习它,或者假设相同的概念和语法与其他语言相同.
| 归档时间: |
|
| 查看次数: |
145 次 |
| 最近记录: |