在我的代码中出现此错误 error: cannot convert 'Aircrafts' to 'Aircrafts*'
我要做的就是将类记录添加到 vector 中。
它是一个 C++ 代码并使用 -ansi -Wall -pedantic
这让我有点恼火。希望有人能帮忙。这是我的代码:
此行给出错误 temp_aircraft = Aircrafts("Scenic", "Piper Arrow", 3, 120, 0, 0);
#include <iostream>
#include <string>
#include <stdlib.h>
#include <vector>
#include <iomanip>
using namespace std;
class Aircrafts
{
public:
string category;
string aircraft;
public:
Aircrafts () {
category = "";
aircraft = "";
}
Aircrafts (string f_cat, string airc) {
category = f_cat;
aircraft = airc;
}
}
void main()
{
vector <Aircrafts> aircraft_list;
Aircrafts *temp_aircraft;
temp_aircraft = new Aircrafts;
temp_aircraft = Aircrafts("Abc", "Xyz");
aircraft_list.push_back(*temp_aircraft);
}
最佳答案
要修复间接级别的错误,您可以替换
temp_aircraft = new Aircrafts;
temp_aircraft = Aircrafts("Abc", "Xyz");
与
temp_aircraft = new Aircrafts("Abc", "Xyz");
这是调用带有参数的构造函数的正确语法。但是,这会造成内存泄漏。
那里根本不需要 new
- 您可以在一行中完成所有操作,而无需使用 temp_aircraft
指针:
aircraft_list.push_back(Aircrafts("Abc", "Xyz"));
关于C++ 无法将 'type' 转换为 'type*',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20118401/