Muy buenas..
Estoy siguiendo unos tutoriales de Unreal Engine y me tope con algo que no habia visto:
float CurrentScale = OurVisibleComponent->GetComponentScale().X;
Mi duda está precisamente en la sintaxis de GetComponentScale().X;
Es primera vez que veo esa terminación ().X;
Cual sería el prototipo de esa clase de funcion ?
Gracias de antemano.
Te devuelve una estructura, FVector. Esto es algo normal para quien está acostumbrado a la programación en C/C++.
https://api.unrealengine.com/INT/API/Runtime/Core/Math/FVector/index.html
Te pongo otro caso de ejemplo para que lo veas en otra situación, pero la respuesta de srWhiteSkull es correcta tambien:
// uso una struct para que los miembros sean publicos, pero tambien sirve usando clases
struct MyStruct{
double a;
double b;
};
class MyClass{
MyStruct private_struct;
public:
MyStruct getStruct()const{
return this->private_struct;
}
};
int main(){
MyClass *p_class = new MyClass;
p_class->private_struct.a = 10;
// ...
cout << p_class->getStruct().a << endl; // salida: 10
}
Si por ejemplo la <struct> tuviera una función que fuese <getA()> también puedes usar eso y hacer:
p_class->getStruct().getA();
Como ves sirve para "concatenar". Puedes ir analizando de izquierda a derecha cada paso. Tienes un puntero a <MyClass> que al llamar a <getStruct()> devolvería la <private_struct> que tiene la clase como miembro. Pero a esa <struct> le aplicas el <.a> para que devuelva sólo el valor a de toda la <struct>.
Esto también te permite concatenar más de dos funciones o miembros. Si trabajas con POO te encontrarás esto en códigos que usan varias clases y estas están relacionadas. Suerte :-X
Muchas gracias ambos, me ha quedado claro...
Antes le tenia terror a C++, pero con vosotros he aprendido bastante, y creo que ese miedo que le tenia realmente no tenia sentido, se programar en C#, pero creo que quedare definitivamente con C++, no me importa estar escribiendo mas, se pasa muy bien.
Gracias nuevamente.