Надеюсь, что это не было задано слишком много раз, я попытался выполнить поиск, но ничего не мог найти (может быть, я просто не знал, как его правильно установить сроки). Простой вопрос:«возвращение» объекта без его включения C++
У меня есть класс vec3, который имеет 3 поля x, y и z . В нем функция flatten, что я хочу вернуть объект vec2 (или что-то вроде объекта vec2, из которого можно построить) поля x и y. Поскольку это единственная функция класса vec3, которая связана с vec2, я бы не хотел включать vec2. Есть ли лучший способ вернуть такой простой объект (два двухместных) без каких-либо включений?
Я думал о возвращении указатель, но что произойдет, если я это сделать:
vec2 v2 = vec3(x,y,z).flatten(); // vec3(x,y,z) is the constructor
Будут временные Vec3 объекты х и у данных все еще существуют, когда v2 пытается построить из них? В этом случае vec2 = double*
будет определен в классе vec2.
vec3 и vec2 выглядеть следующим образом:
class vec3{
double x,y,z;
}
Would х у и г должны быть последовательными в памяти? Думаю, нет.
Спасибо за ваше время.
приятно! Большое спасибо за быстрый ответ! – maxx