Я получаю ошибку в моей основной программе, которая не распознает мой конструктор. Что я делаю не так?
Передача аргумента конструктору в функции 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);
2 ответа
Вы передаете строковый литерал типа const char[8]
(8 для размера строкового литерала) функции, получающей char []
, что эквивалентно получению char *
(потому что массивы C распадаются на указатели через границы функций).
Если вы заставляете конструктор получать const char *
(или const char[]
), он должен работать.
Однако я понятия не имею, что вы имеете в виду под this->Address[64]= "Factory"
. В этой строке нет смысла.
Когда вы вызываете свой метод, вы должны отправить тот же тип данных в параметр метода, например, вы можете изменить вызов конструктора, как показано ниже:
char p[9];
strcpy(p, "VVV-111");
Vehicle aVehicle(p, 2010);
Похожие вопросы
Новые вопросы
c++
C++ — это язык программирования общего назначения. Изначально он разрабатывался как расширение C и имел аналогичный синтаксис, но теперь это совершенно другой язык. Используйте этот тег для вопросов о коде, который будет скомпилирован с помощью компилятора C++. Используйте тег версии для вопросов, связанных с конкретной стандартной версией [C++11], [C++14], [C++17], [C++20] или [C++23]. и т.д.