Я пытался вот уже несколько часов. Я не могу найти способ передать массив фиксированного размера оператору. Я нашел кое-что здесь в stackoverflow и попробовал это таким образом, как вы можете видеть в моем коде, но это не будет работать вообще. Задача состоит в том, что код не должен быть скомпилирован, если массив не имеет размер 3, это означает, что, если массив имеет размер 2 или размер 4, я должен получить ошибку компиляции. Может кто-нибудь сказать мне, как это реализовать? Заранее спасибо! :)
class Vec3 {
private:
int x, y, z;
public:
Vec3 (int x, int y, int z) : x(x), y(y), z(z) {}
int getX () const
{
return x;
}
int getY () const
{
return y;
}
int getZ () const
{
return z;
}
};
Vec3 operator+(Vec3 &vec, int (*arr)[3]) {
int x,y,z;
x = vec.getX() + (*arr)[0];
y = vec.getY() + (*arr)[1];
z = vec.getZ() + (*arr)[2];
Vec3 result(x,y,z);
return result;
}
int main () {
Vec3 v1 (1,2,3);
int v3 [] = {2,4,6};
cout << "v1 + v3 = " << v1 + v3 << endl;
return 0;
}