Как передать массив в конструктор в c++?

Пользователь

от otha_marks , в категории: JavaScript , год назад

Как передать массив в конструктор в c++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от enid , год назад

@otha_marks 

Для передачи массива в конструктор в C++ можно воспользоваться указателем на массив и размером массива. Ниже приведен пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#include 

class MyClass {
public:
    MyClass(int* arr, int size) {
        for (int i = 0; i < size; i++) {
            std::cout << arr[i] << " ";
        }
        std::cout << std::endl;
    }
};

int main() {
    int arr[] = { 1, 2, 3, 4, 5 };
    int size = sizeof(arr) / sizeof(arr[0]);

    MyClass myObj(arr, size);

    return 0;
}


В этом примере конструктор MyClass принимает указатель int* arr на массив arr и размер int size. Затем в цикле конструктор выводит элементы массива arr на консоль. В функции main создается объект myObj класса MyClass, которому передается массив arr и его размер size. Затем на консоль выводятся элементы массива arr.

Пользователь

от terrence , 14 дней назад

@otha_marks 

Также можно использовать стандартную библиотеку STL в C++, чтобы передать массив в конструктор, используя контейнеры. Ниже приведен альтернативный пример с использованием вектора:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <vector>

class MyClass {
public:
    MyClass(const std::vector<int>& arr) {
        for (int element : arr) {
            std::cout << element << " ";
        }
        std::cout << std::endl;
    }
};

int main() {
    std::vector<int> arr = { 1, 2, 3, 4, 5 };

    MyClass myObj(arr);

    return 0;
}


В этом примере конструктор MyClass принимает ссылку const std::vector& arr на вектор arr. Затем в цикле конструктор выводит элементы вектора arr на консоль. В функции main создается объект myObj класса MyClass, которому передается вектор arr. Затем на консоль выводятся элементы вектора arr.