У меня есть что-то вроде:Как переместить структуру в класс?
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 без создания новый класс? Данные отражают структуру, существующую в библиотеке, которую я использую в другом месте. (т. е. те же поля, просто другое имя.Я передал данные в другую структуру позже.Я делаю это, потому что 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_;
Итак, вы хотите создать класс, который похож на Data_s? Или вы хотите скопировать значения своих членов во время выполнения в класс? – Cam
Есть только несколько различий между структурой и классом, чего вы пытаетесь достичь, «переместив структуру в класс»? Возможно, некоторые разъяснения о том, что именно вы пытаетесь сделать, помогут. – stefanB
Добавлено/уточнено. Это лучше? – Kache