Как правильно оформить присваивание значения возвращаемого из функции C++?

В C++ правильное оформление присваивания значения, возвращаемого из функции, будет зависеть от типа возвращаемого значения функции.

Если функция возвращает примитивный тип данных, такой как int, float, char и т.д., то присваивание значения может быть выполнено непосредственно:

int square(int n) {
  return n * n;
}

int result = square(5); // присваивание значения

Если функция возвращает сложный тип данных, такой как класс или структура, присваивание значения может быть выполнено с использованием оператора присваивания или конструктора копирования:

class Point {
public:
  int x, y;

  Point(int x, int y) {
    this->x = x;
    this->y = y;
  }
};

Point createPoint(int x, int y) {
  return Point(x, y);
}

Point p1 = createPoint(3, 4); // присваивание значения с использованием конструктора копирования
Point p2;
p2 = createPoint(5, 6); // присваивание значения с использованием оператора присваивания

Если функция возвращает указатель на память, например на динамически выделенный объект, присваивание значения может быть выполнено с использованием оператора разыменования:

int* createArray(int size) {
  return new int[size];
}

int* arr = createArray(10); // присваивание значения с использованием оператора разыменования

Важно отметить, что при использовании указателей на динамически выделенную память необходимо правильно управлять этой памятью и освобождать ее после использования с помощью оператора delete:

delete[] arr; // освобождение памяти

Также возможно присваивание значения, возвращаемого из функции, напрямую другой переменной:

int getValue() {
  return 10;
}

int x = getValue(); // присваивание значения

В общем случае, правильный способ оформления присваивания значения, возвращаемого из функции, зависит от контекста и требований конкретной задачи.