首页 > 解决方案 > 为什么我在主程序中收到错误消息:没有构造函数实例与参数列表匹配?

问题描述

我的主程序出现错误,无法识别我的构造函数。我究竟做错了什么?

在 Main 函数中将参数传递给构造函数:

Vehicle aVehicle("VVV-111", 2010);

构造函数定义:

Vehicle::Vehicle(char p[], int y) {

  strcpy(this->plateNum, p);
  this->year = y;
  this->Address[64]= "Factory"}

车辆类

      class Vehicle {

      char plateNum [9];
      const char* Address[64];
      int year;

   public:
      Vehicle();
      ~Vehicle();
      Vehicle(char p[], int y);

标签: c++

解决方案


您正在将一个类型const char[8]为 8 的字符串文字(字符串文字的大小为 8)传递给函数 received char [],这相当于接收 a char *(因为 C 数组衰减为跨函数边界的指针)。

如果你让构造函数接收一个const char *(或const char[]),它应该可以工作。

但是,我不知道你的意思是什么this->Address[64]= "Factory"。那条线没有意义。


推荐阅读