C++ 无法将 'type' 转换为 'type*'

标签 c++ types

在我的代码中出现此错误 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/

相关文章:

c++ - Linux 上动态链接期间符号的替代实现

generics - 无法创建简洁和通用的错误类型

java - 如何在 Java 中使用数组进行类型泛型?

perl - 如何在 Moose 中创建子类型?

c++ - 从 ostream 获取 char* 而不进行复制

c++ - 使用 Qpr​​ocess 或系统调用 R 时如何获取输出

c++ - 如何防止过度打字

java - 使用 Arrays.binarySearch 将字符串与对象进行比较

haskell - 处理 haskell 元组的好函数和技术?

c++ - 用C++将OpenCV帧写入磁盘:单线程写入速度是否受磁盘吞吐量的限制?