cpp: "нет экземпляра конструктора"book::book"соответствует списку аргументов"
Я попробовал этот код в блоке кода, и он работает, но он вызывает у меня проблему в Visual Studio. Я не знаю, где именно проблема. Я получаю ошибку:
нет экземпляра конструктора "book::book", соответствующего списку аргументов
Обновленный код:
#include<iostream>
#include<cstring>
using namespace std;
class book
{
private:
int npage;
char title[30];
public:
book(char t[], int p = 33)
{
npage = p;
strcpy_s(title, t);
}
book(book&a)
{
npage = a.npage;
strcpy_s(title, a.title);
}
void p()
{
cout << "page : " << npage << endl << "title : " << title << endl;
}
};
int main()
{
char c[30] = "rich dad poor dad";
book a1(c, 260);
book a2(a1("rich dad poor dad", 260));
a1.p();
system("pause");
}
1 ответ
Просто чтобы выделить проблему, стоит в строке: книга a2(a1("богатый папа бедный папа", 260));.
Здесь вы вызываете конструктор, передавая "rich dad бедный папа", который является const char[18], и там вы ожидаете char t[], поэтому измените объявление параметризованного конструктора на:
book (const char t[], float p) и скопируйте конструктор в: book(const book&a)
а также a2(a1("богатый папа, бедный папа", 260)), чтобы забронировать a2(a1).