Как создать конструктор с массивом в качестве параметра? - PullRequest
0 голосов
/ 22 апреля 2019

У меня есть класс Wektor и конструкторы с одним, тремя и четырьмя параметрами. Мне нужен еще один с массивом float в качестве параметра, но я не знаю, как его создать

Wektor(){
        this -> x = 0;
        this -> y = 0;
        this -> z = 0;
        this -> w = 0;
    }

    Wektor(float x){
        this -> x = x;
    }

Wektor(float x, float y, float z) {
        this -> x = x;
        this -> y = y;
        this -> z = z;
    }

    Wektor(float x, float y, float z, float w) {
        this -> x = x;
        this -> y = y;
        this -> z = z;
        this -> w = w;
    }

1 Ответ

0 голосов
/ 22 апреля 2019

Создание конструктора для массива c

C-массивы не могут быть переданы копией, но они могут быть переданы по ссылке. Есть два способа сделать это.

Первый способ:

using four_floats = float[4]; 

Wektor(four_floats const& arr) {
    x = arr[0];
    y = arr[1];
    z = arr[2];
    w = arr[3]; 
}

Второй способ. Этот способ использует злой, мерзкий синтаксис, который действительно безобразен.

Wektor(float const (&arr)[4]) {
    x = arr[0];
    y = arr[1];
    z = arr[2];
    w = arr[3]; 
}

Создание конструктора из std::array

Этот довольно простой.

Wector(std::array<float, 4> const& arr) {
    x = arr[0];
    y = arr[1];
    z = arr[2];
    w = arr[3];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...