У меня есть что-то вроде:
typedef struct Data_s {
int field1;
int field2;
} Data;
class Foo {
void getData(Data& data);
void useData(Data& data);
}
В функции другого класса я мог бы сделать:
class Bar {
Data data_;
void Bar::taskA() {
Foo.getData(data_);
Foo.useData(data_);
}
}
Есть ли способ переместить Данные из глобальной области видимости в Foo, не создавая новый класс? Данные отражают структуру, существующую в библиотеке, которую я использую в другом месте. (То есть те же поля, только другое имя. Позже я приведу Data к другой структуре. Я делаю это потому, что Foo является абстрактным классом, а производный класс, использующий библиотеку, является лишь одним из многих).
В настоящее время просто вставить его в класс и заменить Data
на Foo::Data
везде не работает.
class Foo {
typedef struct Data_s {
int field1;
int field2;
} Data;
...
}
Я получаю 'Data' in class 'Foo' does not name a type
в Bar data_;