數據成員如何使一個指針例如以C++/CLI 數據成員指針在C++/CLI
ref class team
{
List<teamMember^> members;
teamMember^ leader; //the aim is to make it a pointer to an element in the list
void changeLeader(teamMember^% member) //member is an element from members
{
leader=member; //doesn't reference and %member gave an error
}
};
這與垃圾收集器非常不兼容,它在壓縮堆時移動對象,從而使指針失效。使用參考並避免鎖定。發佈的代碼在您刪除%時正常工作。 –
@ user746277:你在這裏的用例是什麼?爲什麼列表中某個元素的句柄不夠用? – ildjarn
@HansPassant:只有使用本地指針('*')或本機引用('&')時,它纔會不兼容。跟蹤句柄('^')和跟蹤參考('%')都可以和gc一起玩。 –