How to declare vars in C++

You declare variables within the header (.h) of the class in which you want the variable to exist. Here are some examples from within different classes of my project:

/** Camera boom positioning the camera behind the character */
UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Camera, meta = (AllowPrivateAccess = "true"))
class USpringArmComponent* SpringArm;

UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = Weapon)
TArray<TSubclassOf<class AHeroItemWeaponBase>> DefaultWeapons;

UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = "Fox Logic")
FVector CalledPosition = FVector(0.0f);

344778-springarm.png

344779-weapons.png

344780-vector.png

These are examples of different types of variables that can be declared within your header file. Depending on the type of variable, your code will look different. There are a few parts to declaring variables:

  1. UPROPERTY - A set of properties that the variable has; things such as accessibility, categories, display names, and others.
  2. The variable type. FVector, AActor*, custom classes, etc. It is important to include ‘class’ when defining the variable, or #include the class in question within the header file; otherwise there will be compilation issues.
  3. Defining a default value. Depending on the variable type, you may want to define here a default value; such as the case of the CalledPosition FVector example.

You can learn more about UPROPERTY here: Properties | Unreal Engine Documentation

Here is also a Youtube tutorial: Day 2 - UE4 c++ Variables and methods - YouTube

In cases of creating a component, after you declare the component in your header file, you will also need to create the object in the construction script. Here are some helpful links to give more information:

What is the correct way to create and add components at runtime ? - #8 by JamesMugford


I hope this helps, and good luck.

1 Like