Мне было поручено создать два класса: Customer и Barber, у Barber должна быть функция: cutHair (), которая может изменять значение приватного члена hairLength в Customer.
Customer.h
#ifndef CUSTOMER_H
#define CUSTOMER_H
#include "barber.h"
#include <iostream>
#include <string>
using namespace std;
class Customer{
public:
friend void Barber::cutHair(Customer &someGuy);
Customer(string name, double hairLength);
string getName();
double getHair();
void setHair(double newHair);
private:
string name;
double hairLength;
};
#endif
Barber.h
#ifndef BARBER_H
#define BARBER_H
#include <iostream>
#include <string>
#include "customer.h"
using namespace std;
class Customer;
class Barber{
public:
Barber(string barberName);
void cutHair(Customer &someGuy);
private:
string name;
double takings;
};
#endif
barber.cpp РЕДАКТИРОВАТЬ: я изменил реализацию cutHair (), чтобы воспользоватьсяобъявление друга вместо доступа к закрытым членам класса Customer через его общедоступные методы доступа
#include "barber.h"
#include <string>
Barber::Barber(string barberName){
name = barberName;
takings = 0;
}
void Barber::cutHair(Customer &someGuy){
takings += 18;
someGuy.hairLength = someGuy.hairLength * 80 / 100;
}
customer.cpp
#include "customer.h"
#include <string>
Customer::Customer(string customerName, double custHairLength){
name = customerName;
hairLength = custHairLength;
}
double Customer::getHair(){
return hairLength;
}
void Customer::setHair(double newLength){
hairLength = newLength;
}
при попытке построить я получаю сообщение об ошибке
customer.h(10): error C2653: 'Barber' : is not a class or namespace name
в течение нескольких дней проводил исследования и устранял проблемы один за другим.надеюсь, кто-нибудь может прийти мне на помощь :)