Zmieniłem trochę kod, ale działa. Jeżeli jest nie odpowiedni to po prostu uznaj to jako wzór:
#include <iostream>
#include <stdlib.h>
struct vec3d {
float x;
float y;
float z;
vec3d(float x1, float y1, float z1) : x(x1), y(y1), z(z1) { }
};
struct vec5d {
float x;
float y;
float z;
vec5d(float x1, float y1, float z1) : x(x1), y(y1), z(z1) { }
};
void print(float sum, float sum2, float sum3) {
std::cout << "[ " << sum << ", " << sum2 << ", " << sum3 << " ]\n";
}
void add(const vec3d p1, const vec5d p2) {
float sum_x = p1.x + p2.x;
float sum_y = p1.y + p2.y;
float sum_z = p1.z + p2.z;
print(sum_x, sum_y, sum_z);
}
int main() {
vec3d vec3d_object(10.2, 15.5, 7.4);
vec5d vec5d_object(12.4, 11.2, 6.9);
add(vec3d_object, vec5d_object);
system("pause");
return 0;
}