c++ - 为什么我在主程序中收到错误消息:没有构造函数实例与参数列表匹配?
问题描述
我的主程序出现错误,无法识别我的构造函数。我究竟做错了什么?
在 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);
解决方案
您正在将一个类型const char[8]
为 8 的字符串文字(字符串文字的大小为 8)传递给函数 received char []
,这相当于接收 a char *
(因为 C 数组衰减为跨函数边界的指针)。
如果你让构造函数接收一个const char *
(或const char[]
),它应该可以工作。
但是,我不知道你的意思是什么this->Address[64]= "Factory"
。那条线没有意义。
推荐阅读
- laravel - 在laravel中更改分页箭头
- drupal - Performance issues with more than 30 fields on a drupal 8 content type?
- grails - delete is not working even in service?
- android - 运行 Android 模拟器的问题
- swift - “使用未解析的标识符'vImage_Buffer'”的错误消息
- node.js - Loopback - 使用远程方法下载 pdf
- c# - 更新关于重复的字段 IEnumerable c# EF
- mysql - 数据库中的错误(MySQL)
- ruby - 未定义的方法,但我已经明确定义了吗?
- swift - MacOS SpriteKit - 当用户调整窗口大小时调整 UI 大小