내가 좋아하는 뭔가있어 : 다른 클래스의 기능에구조체를 클래스로 이동하는 방법은 무엇입니까?
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
으로 대체하면 작동하지 않습니다.
class Foo {
typedef struct Data_s {
int field1;
int field2;
} Data;
...
}
나는 당신은 클래스 내부의 구조체를 정의 할 수 있습니다 Bar data_;
그래서 당신이 Data_s 유사한 클래스를 만들려면? 또는 멤버의 값을 런타임에 클래스에 복사하려고합니까? – Cam
구조체와 클래스 사이에는 몇 가지 차이점이 있습니다. '구조체를 클래스로 이동'하여 무엇을 달성하려고합니까? 정확히 무엇을하려고하는지에 대한 명확한 설명이 도움이 될 것입니다. – stefanB
추가/명확히했습니다. 그게 더 좋은가요? – Kache