Hello
Im having headaches because I cant figure out what am I doing wrong.
Heres the code:
session.h:
Code:
#include "service.h"
#include "car.h"
#include "driver.h"
class session {
public:
session();
car const &car() const { return m_car; }
private:
service m_service;
car m_car;
driver m_driver;
};
session.cpp:
Code:
#include "session.h"
session::session() : m_service(), m_car(m_service), m_driver(*this) {
}
car.h:
Code:
#include "service.h"
class car {
public:
car(service &s) : m_service(s) {
}
template <typename Handler>
void somefunc(Handler t) {
}
private:
service &m_service;
};
driver.h:
Code:
#include "session.h"
class driver {
public:
driver(session &s);
do_stuff();
private:
session m_session;
};
driver.cpp:
Code:
#include "driver.h"
#include "session.h"
#include "car.h"
driver::driver(session &s) : m_session(s) {
do_stuff();
}
void driver::do_stuff() {
m_session.car().somefunc(someclass);
}
The problem is that car in session class stays 'unknown'.
The error I get:
error C2146: syntax error : missing ';' before identifier 'm_car' .. etc.
How to solve this since I cannot make separated .cpp file for class car because its templated?