我在代码块上尝试了这个代码并且它可以工作,但它在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");
}
答案 0 :(得分:0)
只是为了高亮问题就行了:预订a2(a1(“富爸爸穷爸爸”,260));.
在这里,您通过传递“富爸爸可怜的爸爸”来调用构造函数,这是const char [18]并且您期望char t [],因此将参数化构造函数声明更改为:
book(const char t [],float p) 并将构造函数复制到: 书(const book&amp; a)
以及a2(a1(“富爸爸穷爸爸”,260))预订a2(a1)。