错误与“ operator =”不匹配(操作数类型为“ Person”和“ Person *”)

时间:2019-03-25 15:11:45

标签: c++ structure

TextField

家庭作业:

编写一个处理乘客信息的程序。信息包括: 1)旅客全名。 2)航班号。 3)行李重量 该程序应允许用户: 1)从键盘读取数据并显示。 2)计算行李重量超过10公斤的乘客人数

In function 'int main()':
41  14      [Error] no match for 'operator=' (operand types are 'Person' and 'Person*')
41  14      [Note] candidate is:
8   8       [Note] Person& Person::operator=(const Person&)
8   8       [Note] no known conversion for argument 1 from 'Person*' to 'const Person&'
28          recipe for target 'main112.o' failed

1 个答案:

答案 0 :(得分:1)

拨打此行时:

Person* persons = new Person[4];

那么这已经使四个人了。您不需要以下行:

persons[i] = new Person();

只需删除此行。它返回一个无法分配给Person*的{​​{1}},它指向实际的persons[i](而不是指针)。但是,由于您已经在第一行中创建了四个人,因此根本不需要此行。

但是,完成后,您应该删除人员:

Person