отсутствует оператор “<<”, соответствующий этим операндам

отсутствует оператор “<<”, соответствующий этим операндам, когда пытаюсь вывести метод для объекта массива.

введите сюда описание изображения

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() и заключается в выводе на экран?

→ Ссылка