Мой учитель дал нам домашнее задание и просто дал следующую информацию:
"Этот блок кода в main должен быть скомпилирован и запущен."
String s1, s2 = "Ahmet", s3 = "Nalbant";
s1 = s2 + " " + s3;
cout << s1;
Для этой проблемы я знаю, что мне нужно создать класс с именем «String». Для реализации первой строки мне нужно перегрузить оператор присваивания. На самом деле я его перегрузил, но компилятор по-прежнему выдает эту ошибку «запрошено преобразование из« const char [8] »в нескалярный тип« String ».
Это мой код:
#include <iostream>
#include <string.h>
using namespace std;
class String
{
private:
char * Name ;
public:
String() ;
~String() ;
void operator= (char* Name) ; // To overload Assignment operator.
String operator+ (const String &Obj) ; // To overload Addition operator.
friend ostream& operator<< (ostream& Out,const String& B) ; // To overload ostream operator.
};
String::String()
{
Name = NULL ;
}
String::~String()
{
cout << "program has finished successfully\n" ;
}
void String::operator= (char* Name)
{
strcpy(this -> Name, Name) ;
}
String String::operator+ (const String &Obj)
{
String String_Object ;
String_Object.Name = strcat( this ->Name, Obj.Name) ;
return String_Object ;
}
/* ostream& operator<< (ostream& Out,const char* & Name)
{
}
*/
int main()
{
String S1, S2 = "Ahmet", S3 = "Nalbant" ;
return 0 ;
}
Не могли бы вы мне помочь и исправить "void String :: operator = (char * Name)"
функция.