#include <iostream>
#include <string.h>
using namespace std;
class String
{
private:
enum { SZ=80 };
char str[SZ];
public:
String(){
strcpy(str, "");
}
String (const char s[]){
strcpy(str,s);
}
String operator = (String obj){
String newObj;
strcpy(newObj.str,obj.str);
return newObj;
}
void display(){
cout << str;
}
};
int main()
{
String s1("ABC");
String s3;
s3 = s1;
s3.display();
return 0;
}
Я пытаюсь скопировать одну символьную строку объекта на второй, используя приведенный выше код (оператор присваивания) operator=
, почему это не работает? Я старался изо всех сил, но все равно не смог.Оператор присваивания для Char Строка
Почему вы думаете, что вы «не смогли»? Что случилось? (Думаю, вам нужен конструктор копирования?) Также вы знаете, что 'strcpy' является массово небезопасным? Почему вы используете технологию 1800-х годов? –
Я студент SE и читаю об этом ... можете ли вы предоставить мне подробную информацию о том, как это небезопасно? и об этом вопросе. s3 ничего не показывает .. поэтому я думаю, что я потерпел неудачу. – UnKnown
@LightnessRacesinOrbit Я был бы признателен, если бы вы могли предоставить мне книгу C++ для последнего метода, чтобы узнать. – UnKnown