0
class CFoo
{
int a;
public:
CFoo():a(1){}
~CFoo(){}
getNum(){return a;}
};
void tfunc(void* data)
{
CFoo* foo = static_cast<CFoo*>(data);
std::cout << "Number: " << foo->getNum();
delete foo;
}
int main()
{
CFoo* foo = new CFoo;
void* dt = static_cast<void*>(foo);
tfunc(dt); // or tfunc(static_cast<void*>(food));
return 0;
}
ボイドポインタに変換し、はい、どのようにfoo->getNum()
有効であることができれば、破棄するつもり値ではありませんか?
何も破棄されません。あなたはそのアイデアをどこで手に入れましたか? – DeiDei
破棄されるものはありません。あなたは単に 'CFoo'があるアドレスを指すようにコンパイラに指示します。 – NathanOliver
まあ、ありがとう、私はそれが答えだと思います。私はcplusplusからアイデアを得ました。ここでは、「任意の型をvoidに変換し、値を評価して破棄します」と述べました。 [static_castでもできること](http://www.cplusplus.com/doc/tutorial/typecasting/#static_cast) –