Treść błędu to żaden operator<<nie pasuje do tych argumentów operacji.
Co może być problemem nwm
package.h
#include <iostream>
#include <string.h>
#pragma once
using namespace std;
enum state_of_package {DELAYED, DAMEGED, NORMAL};
class package
{
private:
static const int S_INITIAL_WEIGHT = 1500;
static const int S_INITIAL_TIME = 7;
static const int S_INITIAL_ID = 1;
static const int S_INITIAL_STATE = NORMAL;
string S_INITIAL_NAME = "SuperPostWow";
int m_weight; // weight of the package in grams
string m_name; //name and surname of adresser
int m_time; //time left to deliver
int m_ID; //identification number
int m_state; //state of the package
public:
package();
package(int ID);
package(const package &pack);
friend ostream &operator<<(ostream& o, const package &pack);
~package();
};
package.cpp
#include "stdafx.h"
#include "package.h"
#include <string.h>
#include <iostream>
using namespace std;
package::package()
{
m_ID = S_INITIAL_ID;
m_name = S_INITIAL_NAME;
m_weight = S_INITIAL_WEIGHT;
m_time = S_INITIAL_TIME;
m_state = S_INITIAL_STATE;
}
package::package(int ID)
{
m_name = S_INITIAL_NAME;
m_weight = S_INITIAL_WEIGHT;
m_time = S_INITIAL_TIME;
m_ID = ID;
m_state = S_INITIAL_STATE;
}
package::package(const package &pack)
{
m_ID = pack.m_ID;
m_weight = pack.m_weight;
m_time = pack.m_time;
m_name = pack.m_name;
m_state = pack.m_state;
}
package::~package(){
}
ostream & operator<<(ostream &o, const package& pack) {
o << "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" << endl;
o << "ID:" << pack.m_ID << endl;
o << "Days left to deliver:" << pack.m_time << endl;
o << "Weight:" << pack.m_weight << "g" << endl;
o << "State of the package:" << pack.m_state << endl;
o << "Adresser:" << pack.m_name << endl; // **<--- tu jest problem**
o << "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" << endl;
return o;
}
main.c
#include "stdafx.h"
#include "iostream"
#include <string>
#include "package.h"
int main()
{
int a;
package t1;
std::cout << t1 << endl;
std::cin >> a;
return 0;
}
Z góry dzięki za pomoc