#include "Xfile.h"
#include "Y1file.h"
int main()
{
X x;
Y1 f1;
f1.f(x);
return 0;
}
#ifndef F1_HPP_
#define F1_HPP_
#include "Xfile.h" //needed for X x1; data member
struct Y
{
struct Y1
{
int y1 = 0;
};
X x1;
};
#endif
#ifndef X_H
#define X_H
#include <iostream>
struct X
{
int x = 0;
int x2 = 0;
int x3 = 0;
};
#endif
#ifndef Y1_H
#define Y1_H
#include "Yfile.h"
//forward declarations for parameters
struct X;
class Y1
{
public:
void f(X x);
void f2(Y::Y1 y1);
};
#endif
#include "Y1file.h"
#include "Xfile.h"
#include "Yfile.h"
void Y1::f(X x)
{
std::cout<<"-1-\n";
}
void Y1::f2(Y::Y1 y1)
{
std::cout<<"f2"<<std::endl;
}