嗨,我有一个包含数组的类,我没有通过我的类构造函数传递它(这里可能会出错吗?)数组仅在类中定义,然后在read方法中初始化。

但是在主要方面,我创建了一个类的实例,例如:

myClass myClass1;

然后做:
myClass1 = myClass2;

现在,我在第一个类实例上使用冒泡排序方法,例如:
MyClass1.sort();

现在,当我在排序之后将这两个实例都写到文本中时,它们都被排序了吗?

我已经读过浅拷贝和深拷贝,但是我不明白为什么在浅拷贝之后调用一个方法会导致对它们进行排序?这是预期的行为吗?

更多信息:

在我的类里面,我只是将数组定义为:
static string myArray[5];

然后在write方法中,我向其中写入5个元素,是否有更好的方法来做到这一点,但是我必须使用一种方法来初始化它。

最佳答案


如果在类定义之外声明该变量,则它将是全局变量。只会有一个实例。您需要在类中声明它,而不是static:

class MyClass1 {
    // other things...
    string myArray[5];
};
无论如何,通过咨询a good C++ introductory book可以更好地回答这种基本问题。

10-04 12:25