отсутствует оператор “<<”, соответствующий этим операндам
отсутствует оператор “<<”, соответствующий этим операндам, когда пытаюсь вывести метод для объекта массива.
Ship.h:
#pragma once
class Ship
{
char* name;
char* type;
int displ;
public:
Ship(const char* Name, const char* Type, int Displ);
void Show();
};
Ship.cpp:
#include "Ship.h"
#include <iostream>
#include <cstring>
using namespace std;
Ship::Ship(const char* Name, const char* Type, int Displ)
{
name = new char[strlen(Name) + 1];
strcpy(name, Name);
type = new char[strlen(Name) + 1];
strcpy(type, Type);
displ = Displ;
cout << "Вызван конструктор с параметрами" << endl;
}
Ship::~Ship()
{
delete[] name;
delete[] type;
cout << "Вызван деструктор" << endl;
void Ship::Show()
{
cout << "Ship: " << name << ", " << type << ", " << displ << "." << endl;
}
Source.cpp
#include "Ship.h"
#include <iostream>
using namespace std;
int main()
{
setlocale(LC_ALL, "ru");
const int len = 2;
Ship group[len] = { Ship("GG", "g", 200),
Ship("gg", "f", 300) };
cout << group[0].Show() << endl;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
У вас
void Ship::Show()
возвращает void. Как вы собираетесь в строке
cout << group[0].Show()
выводить значение типа void?
И вообще, зачем вы собираетесь выводить результат функции Show(), которого нет, если ваша Show() и заключается в выводе на экран?
