不真实的引擎指针问题(不理解) 我是C++和虚幻引擎的初学者,但我一直在练习。我的问题是,我在使用指针时遇到了一些问题,我不确定过度使用指针的意义。。。如果这有意义的话。我知道这个问题很可能已经得到了回答,但我的代码中也有一个问题,我将附上这个问题。我不知

不真实的引擎指针问题(不理解) 我是C++和虚幻引擎的初学者,但我一直在练习。我的问题是,我在使用指针时遇到了一些问题,我不确定过度使用指针的意义。。。如果这有意义的话。我知道这个问题很可能已经得到了回答,但我的代码中也有一个问题,我将附上这个问题。我不知,c++,unreal-engine4,C++,Unreal Engine4,不真实的引擎指针问题(不理解) 我是C++和虚幻引擎的初学者,但我一直在练习。我的问题是,我在使用指针时遇到了一些问题,我不确定过度使用指针的意义。。。如果这有意义的话。我知道这个问题很可能已经得到了回答,但我的代码中也有一个问题,我将附上这个问题。我不知道为什么,但代码不会编译,除非我将其作为指向我的FString对象的指针。。。为什么它不编译 // Fill out your copyright notice in the Description page of Project Settin

不真实的引擎指针问题(不理解) 我是C++和虚幻引擎的初学者,但我一直在练习。我的问题是,我在使用指针时遇到了一些问题,我不确定过度使用指针的意义。。。如果这有意义的话。我知道这个问题很可能已经得到了回答,但我的代码中也有一个问题,我将附上这个问题。我不知道为什么,但代码不会编译,除非我将其作为指向我的FString对象的指针。。。为什么它不编译

// Fill out your copyright notice in the Description page of Project Settings.
#include "BullCowCartridge.h"

void UBullCowCartridge::BeginPlay() // When the game starts
{
    Super::BeginPlay();
    SetupGame();
}

void UBullCowCartridge::OnInput(const FString& Input){ // When the player hits enter 
    ProcessGuess(Input);
}

void UBullCowCartridge::SetupGame() {
    //Establish HiddenWord
    HiddenWord = TEXT("minecraft");
    //Establish LifeCounter
    LifeCounter = HiddenWord.Len();
    //Establish GameOver
    bGameOver = false;

    //Print welcome screen/intro
    PrintLine(TEXT("WELCOME TO BULLS AND COWS!"));
    PrintLine(FString::Printf(TEXT("Guess the %i letter hidden word."), HiddenWord.Len()));
    PrintLine(FString::Printf(TEXT("Lives: %i"), LifeCounter));
    PrintLine(TEXT("\n"));
    PrintLine(TEXT("Enter your guess..."));
    PrintLine(TEXT(""));
}

void UBullCowCartridge::EndGame() {
    bGameOver = true;
    PrintLine(TEXT("Press enter to continue..."));
}

void UBullCowCartridge::ProcessGuess(FString Guess) {


    if (bGameOver) {
        ClearScreen();
        SetupGame();
        return;
    }

    if (Guess == HiddenWord) {
        ClearScreen();
        PrintLine(TEXT("You win!"));
        PrintLine(FString::Printf(TEXT("The hidden word was %s"), *HiddenWord));
        EndGame();
        return;
    }

    if (Guess.Len() != HiddenWord.Len()) {
        PrintLine(FString::Printf(TEXT("%i is not the correct amount of letters.\nPlease enter %i letters."), Guess.Len(), HiddenWord.Len()));
        return;
    }

    LifeCounter--;

    if (LifeCounter > 1) {
        PrintLine(FString::Printf(TEXT("You have %i lives remaining."), LifeCounter));
        return;
    }

    if (LifeCounter > 0) {
        PrintLine(FString::Printf(TEXT("You have %i life remaining."), LifeCounter));
        return;
    }
    else {
        ClearScreen();
        PrintLine(TEXT("You lose."));
        PrintLine(FString::Printf(TEXT("The hidden word was %s"), *HiddenWord));
        EndGame();
        return;
    }
}

对于你对指针的一般理解,互联网上有足够的资源。“我不知道为什么,但代码不会编译,除非我将其作为指向我的FString对象的指针”,这是什么意思?哪一行?我想你指的是一个UE_日志调用?实际上,你并没有得到一个指向你的字符串的指针,你使用的是FString中定义的*运算符,它返回它的TCHAR表示,这是TCHAR指针。但是这里的真正问题是在你学习UE之前,首先应该学习C++基础知识。请在你的问题中包含编译失败消息。