I am still fairly new to c++ so please allow! Essentially I have created a struct in the header file for one of my classes full of strings.
typedef struct details{
string name;
string address;
}details;
and I wish to not only use this struct in the cpp file that belongs to the header, but in other classes as well. For example, I want to create a vector of this struct in another header file.
private:
vector <details> foo;
I also want to use the struct in the main
details d;
d.name = "hi";
d.address = "hello";
however when I currently try to do this I get errors such as
error: 'details' was not declared in this scope
vector <details> foo;
and
error: template argument 1 is invalid
vector <details> foo;
has anyone had similar issues who can provide insite into what I can do to fix this? Thanks a lot.
EDIT TO DEMONSTRATE CODE
class1.h
#include "class2.h"
struct trans1{
string name;
};
class class1 {
private:
vector <trans2> t2;
public:
class1();
};
class2.h
#include "class1.h"
struct trans2{
string type;
};
class class2{
private:
vector <trans1> t1;
public:
class2();
};
errorlog:
In file included from class1.h:3:0,
from class1.cpp:1:
class2.h:21:13: error: 'trans1' was not declared in this scope
vector <trans1> t1;
^
class2.h:21:19: error: template argument 1 is invalid
vector <trans1> t1;
^
class2.h:21:19: error: template argument 2 is invalid
I understand that this is ridiculous code in a real world application however this is the simplest way I could demonstrate