2014-02-13 29 views
-3

所以,如果我有我的主要方法的方块看起来像这样:使用类值赋值给一个变量(C++)

Classname** array2 = new ClassName* [sizeOfArray]; 
for (int i = 0; i < sizeOfArray; i++) { 
    array2[i] = new ClassName(array1[i]); 
} 

我会放什么类来分配数组2相同值为array1,假设它们的大小相同?

我知道,这将是更容易在不使用类分配值,但幽默我。

+0

如果我们不知道您正在使用的数组和对象的类型,这没有任何意义。 –

+0

是数组2类的本地数组或对象在这里说类名。如果它是一个对象,然后就直截了当地使用拷贝构造函数做你的工作,如果是本地数组,然后分配本身没有任何意义。 – Itachi

+0

array1是一个本地数组,array2是该类的一个对象。这两个数组都是字符数组。 – user2302019

回答

1

这将取决于类名是否有任何动态分配的数据成员。

对于类没有动态分配的内存,默认的拷贝构造函数就足够了,你不需要添加任何东西更多的类名正确复制。

如果有,写一个拷贝构造函数对这些成员进行复制。

class ClassName { 
public: 
    int * data; // Dynamically allocated data members 
    ... 

    // Copy constructor 
    ClassName(const ClassName & other) 
    { 
     data = new int;  // Allocate memory.. 
     *data = *other.data; // and copy data member 
    } 
}; 
+0

更新回答编辑的问题 – Skul