Ошибка 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>