Hi jungens, ich tue mich noch schwer zu erkennen, wann ich dereferenzieren "*..." soll und wann nicht, hat da jemand ne gute Erklärung?
Hier ein Beispiel:
Code
IOnlineSubsystem* OnlineSubsystem = IOnlineSubsystem::Get();
if (OnlineSubsystem)
{
if (GEngine)
{
GEngine->AddOnScreenDebugMessage(-1, 15.f, FColor::Yellow, FString::Printf(TEXT("found subsystem: %s"), *OnlineSubsystem->GetSubsystemName().ToString()));
}
}
Im Beispiel wird ja "*OnlineSubsystem" ja durch das "*" dereferenziert.
Da "OnlineSubsystem" ein Pointer ist und somit eine Adresse innehat, wird durch das Dereferenzieren der Pointer nun wieder einen Wert ausgeben, versteh ich richtig so?
Kann das Rereferenzieren noch etwas anderes? Kann es auch auf eine normale Variable angewendet werden um wieder die Adresse der Variable wiederzugeben? Kann das Rereferenzieren noch etwas anderes?