Ошибка 0349 отсутствует оператор, соответствующий этим операндам

Пишу программу на С++, в которой надо разработать определения двух классов COne и CTwo, которые связаны отношением включения. Проблема возникает в мейне, при попытке вывести A.getObj().

Сама ошибка : 0349 отсутствует оператор "<<", соответствующий этим операндам

Скорее всего ошибка возникает из-за того, что в классе отсутствует нужный метод. Помогите с его реализацией, пожалуйста

//MAIN
#include <iostream>
#include <String.h>
#include "CTwo.h"
#include "COne.h"

using namespace std;
int main()
{
    CTwo A("CTwo String","COne String", 505);
    A.Print();

    
    cout << A.getS() <<  endl;
    cout << A.getObj() << endl; // <==== ошибка тут


}


//COne.h
#ifndef CONE_H
#define CONE_H

#include <iostream>
#include <string>


using namespace std;

class COne
{

    protected:
        string s;
        double d;
        
    public:
        COne();
        COne(string S, double D);
        ~COne();

        COne(const COne& arg);
        
        void print();

        COne(COne& arg);

        const double& getD();
        const string& getS();

        void Print();

        COne& operator=(const COne& arg);

        friend class CTwo;
};
#endif


//CTwo.h
#ifndef CTWO_H
#define CTWO_H

#include <iostream>
#include <string>
#include "COne.h"

using namespace std;
class COne;

class CTwo
{
protected:
    string s;
    COne obj;

public:
    CTwo();
    CTwo(string S, string SOne, double d);
    virtual ~CTwo();
    void Print();

    const string& getS();
    const COne& getObj();


    friend class COne;
};

#endif

Ответы (1 шт):

Автор решения: KoVadim

добавьте функцию вида, можно даже возле int main()

std::ostream operator<<(std::ostream& os, const COne& one)
{
  os << one.getD() << " / " << one.getS();
  return os; // эта строка обязательна
};

возможно, нужно будет добавить #include <ostream>

→ Ссылка