これを簡単に行う方法が実際にあるかどうかを知る必要があります。これは私がやりたいことのほんの一例です...
void* ptr;
ptr = new Foo;
((Foo*)ptr)->member1 = some_val;
((Foo*)ptr)->member2 = some_val;
((Foo*)ptr)->member3 = some_val;
((Foo*)ptr)->member4 = some_val;
((Foo*)ptr)->member5 = some_val;
((Foo*)ptr)->member6 = some_val;
ptrはvoid*なので、とにかくptrタイプを一時的に変更して、使用するたびにキャストする必要がないようにすることはできますか?
ptrは他の場所で使用されており、void型である必要があるため、Foo型の別のポインタを作成することはできません。だから、私がしなければならないすべての厄介なキャストを避けるために、一時的にタイプFooにすることを推測します。
**一部の人々は混乱しているようです...プログラムでは次のように使用されるため、ptrはvoid型のままにする必要があります:-
void* ptr;
switch (bar)
{
case 1:
ptr = new Foo;
((Foo*)ptr)->member1 = some_val;
((Foo*)ptr)->member2 = some_val;
((Foo*)ptr)->member3 = some_val;
((Foo*)ptr)->member4 = some_val;
((Foo*)ptr)->member5 = some_val;
((Foo*)ptr)->member6 = some_val;
case 2:
ptr = new Doo;
...
case 3:
ptr = new Scooby;
...
したがって、ptrはvoid型のままにする必要があります。ptrを別のタイプにキャストする一時的な方法があるかどうかを知りたかったので、キャストを避けてください...