Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/25: Рейтинг темы: голосов - 25, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 29.04.2014
Сообщений: 185

В классе инициализировать массив, в классе создать функцию вывода массива на экран

31.08.2014, 23:24. Показов 4927. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу помоши с выводом данных, которые содержаться в массиве, на экраy:
Задача: В классе инициализировать массив, в классе создать функцию вывода массива на экран.

Прошу подсказать ГДЕ В ЛОГИКЕ ПРИНЦИПИАЛЬНАЯ ОШИБКА ?
не пишите ответ как код, пожалуйста, я хочу сам понять где косяк. Спасибо если все разжуете в подробностях, а если не разжуете, тогда все равно сапсибо)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//создать массивы данных и перегрузить их операторы = + -.
#include <iostream>
#include <cstdlib>
using namespace std;
 
 
class T
{
private:
    int A1[3];
 
public:
    T()
    {
        for(int i=0; i<3; ++i)
        {   
            A1[i]=rand()%3000;
            cout    << A1[i] << "test const" << endl;
            cout    << endl;
        };
    };
 
    void show()
    {
        for(int i=0; i<3;++i)
        {
 
            cout    << "A["<< i <<"] = " << A1[i] << endl;
        };
    };
};
int main()
{
    T Ar1[3];
    T Ar2[3];
    T Ar3[3];
    
    Ar1[3].show();
    Ar2[3].show();
 
 
    return 0;
};
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.08.2014, 23:24
Ответы с готовыми решениями:

В классе Arrs напишите функцию PrintArr3 для вывода двумерного массива массивов
Ребят, нужна помощь с заданием. 1. В классе Arrs напишите функцию PrintArr3 для вывода двумерного массива массивов; Методические...

Как инициализировать массив в классе
private: static char const figury_={0,4,0,0, 0,1,0,3, 2,1,0,3, 0,2,0,2, 1,2,0,2, ...

В одном классе нужно создать массив, а в классе program его вывести. "Не все ветви кода возвращают значение"
В одном классе нужно создать массив, а в классе program его вывести, помогите, как разобраться namespace con { class Array ...

5
31 / 31 / 19
Регистрация: 03.05.2011
Сообщений: 84
31.08.2014, 23:30
Смотрите, принципиальных косяка у Вас два:
1)Вы создаете массив Ar1 экземпляров класса T, в котором будет три экземпляра, в каждом - массив из трех элементов. Как я понимаю, Вы хотите лишь один экземпляр класса, тогда достаточно просто написать T Ar1.
2)Если это все же массив, то нельзя забывать про то, что нумерация идет с нуля, то есть, если Вы объявляете T Ar1[3], то Вы можете обращаться к Ar[0], Ar[1], Ar[2], но не к Ar[3]
1
0 / 0 / 0
Регистрация: 29.04.2014
Сообщений: 185
31.08.2014, 23:50  [ТС]
сейчас на реализацию в мейне не стоит смотреть. это только черновик я буду создавать 2 разных массива класса Т. оба будут проинициализированны внутри класса. третий массив будет результатом суммы значений первых двух.
Сейчас интересует как правильно передать передать массив в класс. И как вывести массив, созданный внутри класса, на экран.
0
1123 / 794 / 219
Регистрация: 15.08.2010
Сообщений: 2,185
01.09.2014, 00:23
Цитата Сообщение от MMt Посмотреть сообщение
как правильно передать передать массив в класс
Тогда стоит использовать динамические массивы внутри класса (операторы new, delete[]) и передавать нужно будет в специальный метод класса указатель на массив.
Со статическим тоже прокатит, но придется резервировать много места и все равно будут возможны ошибки.
Цитата Сообщение от MMt Посмотреть сообщение
И как вывести массив
У вас уже есть вывод. В случае динамического массива надо лишь будет заменить 3 на размер массива.

Добавлено через 1 минуту
Забыл добавить, очень смущает название класса, так как ассоциируется с шаблонами.
0
0 / 0 / 0
Регистрация: 29.04.2014
Сообщений: 185
01.09.2014, 11:44  [ТС]
с динамичесским массивом не работал. вопрос о скорости работы не стоит, о памяти и т.д. тоже. не могу понять из чего состоит конструктор и что и как туда предавать... сейчас самые примитивные варианты надо
0
694 / 304 / 99
Регистрация: 04.07.2014
Сообщений: 851
01.09.2014, 13:40
Первое замечание, int A[3] имеет тип int*. Это пришло из Си в С++. Соответственно если хотим передать его то нужен будет метод
C++
1
void setA(int *A, int size);
с возвратом, всё сложнее. Если написать
C++
1
int* getA() { return A1; };
Ты передашь ссылку на внутренние данные класса, и не передашь размер массива. Т.е. это всё печально.
Как следствие надо будет передавать результат через параметры, выделять память через new, и не забывать удалять полученный массив через delete в вызывающем коде.
Если размер у тебя всегда будет фиксированным, можно обернуть результат в структуру:
C++
1
2
3
4
5
6
7
8
9
10
struct Data {
  int A[3];
};
 
class ...
private:
  Data A1;
public:
  Data getData() { return A1; };
...
Но тут тоже есть много подводных камней.
Если всё таки размер должен быть разным, то в С++ следует использовать std::vector:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <vector>
 
...
private:
  std::vector<int> A1;
...
  std::vector<int> getA() { return A1; };
  void setA(std::vector<int> A) { A1=A; };
...
 
int main() {
...
  std::vector<int> A;
  for(int i=0; i<10; ++i) { A.push_back(rand()%3000) ; }
  T Ar1;
  Ar1.setA(A);
...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.09.2014, 13:40
Помогаю со студенческими работами здесь

Как инициализировать статический константный массив в классе?
Например, есть класс, которой статически хранит виды себя. Не могу понять как его инициализировать (Или может предложите хранить по...

наследование в классе нескольких функций из другого или как добавить функцию находящуюся в классе в другой класс
есть класс. есть второй класс. как добавить функцию находящуюся в классе в другой класс(второй) при этом второй уже наследует какой то...

Описать функцию в классе Name и создать объект, вызывающий данную функцию.
Описать функцию в классе Name и создать объект, вызывающий данную функцию. Проверить истинность высказывания: &quot;Данное целое число...

Массив указателей на функцию в классе
Доброго всем времени суток.Пожалуйста помогите разобраться. #include &lt;stdlib.h&gt; #include &quot;iostream&quot; using namespace std;...

Как инициализировать вектор в классе?
#pragma once #include &lt;iostream&gt; using namespace std; #include &lt;string&gt; #include &lt;sstream&gt; #include &lt;stack&gt; #include &lt;vector&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru