Как исправить ошибку конструктора класса c++?

У меня есть функция конкатенации которая возвращает мой собственный класс String. Но когда я вызываю ее в main с помощью конструктора копии, выводит ошибку "отсутствуют экземпляры конструктора "String::String", соответствующие списку аргументов". Код прилагается.

Строка вызова в main:
String res(str.concat(str1));

Сам конструктор копии:
String::String( String& str) {
	size_t size = strlen(str.string_) + 1;
	delete[]str.string_;
	str.string_ = new char[size];
	strcpy_s(str.string_, size, str.string_);
}
  • Вопрос задан
  • 228 просмотров
Решения вопроса 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Приведите всё сообщение компилятора целиком. В нем однозначно написано, какой конструктор он ищет. Кажется, внимательно посмотрев на него вы заметите, что компилятору нужен конструктор с const String&, когда как у вас определен только String&.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 12:20
10000 руб./за проект
22 нояб. 2024, в 11:53
3000 руб./за проект
22 нояб. 2024, в 11:51
20000 руб./за проект