Ошибка: error C2664: "size_t strlen(const char *)": невозможно преобразовать аргумент 1 из "std::string" в "const char *" Для выполнения данного преобразования нет доступного оператора преобразования, определенного пользователем, или вызов оператора невозможен error C2664: "char *strcat(char *,const char *)": невозможно преобразовать аргумент 1 из "std::string" в "char *" Для выполнения данного преобразования нет доступного оператора преобразования, определенного пользователем, или вызов оператора невозможен
#include <iostream>
#include <string.h> // для функций strcpy, strcat
#include <stdlib.h> // для функции exit
using namespace std;
class String
{
private:
enum { SZ = 80 };
char str[SZ];
public:
String()
{
strcpy_s(str, "");
}
String(char s[])
{
strcpy_s(str, s);
}
void display() const
{
cout << str;
}
String operator += (String ss) const
{
String temp;
if (strlen(str) + strlen(ss.str) < SZ)
{
strcpy_s(temp.str, str); // копируем содержимое первой строки
strcat_s(temp.str, ss.str);// добавляем содержимое второй строки
}
else
{
cout << "\nПереполнение!";
exit(1);
}
return temp; // возвращаем результат
}
};
int main()
{
system("chcp 1251 > nul");
String s1 = "\nHappy New Year! "; /* Ошибка: не существует подходящего конструктора для переобразования из "const char[19]" в "String" */
String s2 = "Merry Christmas!";
String s3;
s1.display();
s2.display();
s3.display();
s3 = s1 += s2;
s3.display();
cout << endl;
cin.get();
return 0;
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости