Я до сих пор довольно новичок в C++, поэтому, пожалуйста, позвольте! По существу я создал структуру в файле заголовка для одного из моих классов, заполненных строками.Использование структуры между классами в C++
typedef struct details{
string name;
string address;
}details;
, и я хочу, чтобы не только использовать эту структуру в файле CPP, который принадлежит к заголовку, но и в других классах, а также. Например, я хочу создать вектор этой структуры в другом файле заголовка.
private:
vector <details> foo;
Я также хочу использовать структуры в главном
details d;
d.name = "hi";
d.address = "hello";
однако, когда я в настоящее время пытаются сделать это, я получаю ошибки, такие как
error: 'details' was not declared in this scope
vector <details> foo;
и
error: template argument 1 is invalid
vector <details> foo;
у кого-то было похоже суды, которые могут обеспечить, что я могу сделать, чтобы исправить это? Большое спасибо.
EDIT ПОКАЗАТЬ КОД
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 понимаете, что это смешной код в реальном мире, но это самый простой способ продемонстрировать.
Вы должны включить этот заголовок в каждом модуле, CPP, который относится к структуре. –
Пожалуйста, предоставьте SSCCE. – Shoe
Ive добавил код выше – Will