【发布时间】:2012-03-17 10:42:17
【问题描述】:
嗨,我有一个包含数组的类,我没有通过我的类构造函数传递它(这里可能会出错吗?)数组只是在类中定义,然后在读取方法中初始化。
但我主要创建了一个类的实例,例如:
myClass myClass1;
然后做:
myClass1 = myClass2;
现在我在第一个类实例上使用冒泡排序方法,例如:
MyClass1.sort();
现在,当我在排序后将这两个实例写入文本时,它们都已排序?
我读过浅拷贝和深拷贝,但我不明白为什么在浅拷贝之后调用的方法会导致它们都被排序?这是预期的行为吗?
更多信息:
在我的课堂上,我只是将数组定义为:
static string myArray[5];
然后在 write 方法中我将 5 个元素写入它,有没有更好的方法来做到这一点,但我必须使用一种方法来初始化它。
【问题讨论】:
-
你确定涉及到一个数组?你不是confusing arrays with pointers吗?如果您可以发布一个演示此行为的小示例,将会有所帮助。
-
给我更多代码。我怎么知道你没有在其他地方搞砸?
-
我会用更多的代码更新我的帖子,但我不想发布太多,因为它是一个任务,我只是想弄清楚为什么会发生这种情况!虽然我知道这意味着我必须发布更多代码!
-
该代码无关紧要。向我们发布类定义。
-
如果您将某事声明为
static,它会在类的所有个实例之间共享。
标签: c++ deep-copy shallow-copy