使用赋值运算符复制两个类中的数组时出现编译器错误
Compiler error at use of assignment operator to copy an array in two classes
>我正在重载赋值运算符函数以将一个字符数组复制到不同对象中的另一个字符数组。我可以调用重载赋值运算符函数,但不能使用赋值。
你能给我一些指导我做错了什么吗?我可以使用赋值运算符使用两个类吗?
谢谢你,塞尔吉奥
pTest = myData;//Fails
pTest->operator=(myData);//this works
struct Data {
char sourceName[5] = { 'S','o','l' };
};
class Test {
public:
//virtual void operator=(Data data) = 0;
void operator=(Data data);
void Show();
private:
char nameTest1[10];
};
void Test::operator=(Data data) {
strcpy_s(nameTest1, data.sourceName);
}
void Test::Show() {
cout << nameTest1;
}
int main() {
Test *pTest = new Test();
Data myData;
pTest = myData;//Fails
pTest->operator=(myData);//but this works
}
预期结果:数据对象的数组源名称被分配给对象测试中的数组名称Test1。
pTest
是一个指针。
*pTest = myData;
应该工作。
试着记住,指针和它指向的东西是两回事。两者都可以在C++代码中操作,因此新手经常将它们混淆。
相关文章:
- 类动态数组错误
- 如何返回多维数组?错误C2440
- 数组错误(不允许类型不完整)
- C++ 将文件读取到数组错误:'operator>>'不匹配
- 不断增加的指针数组 错误:赋值中的类型不兼容
- 从文本文件读取 2D 数组错误
- 动态结构数组错误
- 旋转数组 - 错误
- 按字母顺序排序名称,数组错误
- 因为每个循环都读取数组错误
- 二维数组错误
- C 获取数组错误
- 编译时出现字符串数组错误
- c++2维指针类数组错误(使用openframework)
- C++数组错误
- C++上数组错误的大小
- C++数组错误:访问冲突读取位置0xC0000005
- c++2D数组错误
- C++:为“char [4]”数组错误获取太多初始值设定项
- 分段错误(核心转储)排序字符串数组错误