c 样式的数组不能像那样复制,如果要复制一个,则必须复制内容:
int arr1[10] = {1,2,3,4,5,6,7,8,9,10};
int arr2[10];
std::copy(arr1, arr1+10, arr2);
// std::copy() lives in <algorithm>
// content of arr2 is a now copy of arr1
但是,最好避免使用诸如 c 样式数组之类的低级功能。
如果您真正想要的是可变长度字符串,请改用std::string
它,它支持通过赋值运算符进行复制。
如果您真的想要一个固定长度的数组,请改用std::array<T,N>
它,它还支持通过赋值运算符进行复制。
另请注意,建议参数名称和成员变量名称是不同的,但使用成员初始化语法的构造函数除外:
#include <string>
class UCSDStudent
{
std::string name;
public:
UCSDStudent( std::string name )
: name(name)
{
}
void SetName( std::string new_name )
{
name = new_name;
}
};
另请注意,如果您计划为所有成员变量设置 setter 和 getter,我是否可以推荐公共数据,至少如果该类没有class-invariant。