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

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

31.08.2014, 23:24. Показов 4881. Ответов 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru