gpt4 book ai didi

c++ - 无法从重载函数中计算出来

转载 作者:行者123 更新时间:2023-11-28 01:52:42 25 4
gpt4 key购买 nike

我正在研究重载运算符。

出于某种原因,我没有从重载函数中获得 cout 输出。

class MyString {

public:
MyString(const char aString[20]){
// copy the input string to "data"
for(int i = 0; i < 20; i++){
data[i] = aString[i];
}
}

public:

MyString operator=(const MyString copyFrom){
MyString copyTo("");

cout << "hi";

for(int i = 0; i < 20; i++){
copyTo.data[i] = copyFrom.data[i];
}

return copyTo;
}

public:
char data[20]; // a pointer to memory
};


int main() {
MyString a("hello");

MyString b = a;

cout << b.data << endl;

return 0;
}

当我运行我的代码时,我得到以下结果:

C:\MinGW\bin>g++ stringoverloading3.cpp

C:\MinGW\bin>a.exe hello

C:\MinGW\bin>

有没有关于重载会杀死 cout 的东西?

最佳答案

线

MyString b = a;

不是作业。是初始化。调用复制构造函数来初始化对象。要调用赋值运算符,请使用:

MyString b;
b = a;

为了能够使用它,必须首先实现默认构造函数。

关于c++ - 无法从重载函数中计算出来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42334268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com