34 / 10 / 2
Регистрация: 20.02.2016
Сообщений: 1,558
1

Ошибка при выведении функции класса, в которой нужно вводить переменную

17.09.2016, 14:23. Показов 608. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
написал простенькую программу, в которой есть ошибка. Объясните , пожалуйста какая в функции ошибка.
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
 #include<iostream>
using namespace std;
const int limit = 10;
class safearay
{private:
    int mass[limit];
public:
    void putel(int n, int x )
    {
        cin >> n; cin >> x;
        mass[n] = x;
    }
    void getel(int nm)
    {
        cin >> nm;
        cout << mass[nm];
    }
    };
int main()
{
    safearay sa1;
    sa1.putel();
    sa1.getel();
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.09.2016, 14:23
Ответы с готовыми решениями:

Ошибка при выведении сообщения
после нажатия кнопки &quot;рассчитать&quot;, если не заполнили edit должно вылезти сообщение об ошибке....

Почему ошибка при выведении as_integer_ratio?
если пишу: z = 0.5 z.as_integer_ratio() (1, 2) но если пишу:

Ошибка в коде при выведении строки
Пишу код для покера. Вот одна из его частей: #include &lt;iostream&gt; #include &lt;time.h&gt; using...

Ошибка при выведении текста на экран
Здравствуйте, уважаемые форумчане. Пишу программу, визуализирующую алгоритм Bucket Sort, используя...

6
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
17.09.2016, 14:25 2
В какой строке ошибка и какая? Почему в строках 22 и 23 написаны функции без параметров?
0
34 / 10 / 2
Регистрация: 20.02.2016
Сообщений: 1,558
17.09.2016, 14:40  [ТС] 3
Скобки в этих строках подчёркнуты.я не знаю, что в скобках писать.
0
132 / 158 / 87
Регистрация: 06.04.2016
Сообщений: 992
17.09.2016, 14:47 4
Как не знаешь, а кто программу писал?

Добавлено через 2 минуты
putel(int n, int x):
n - номер элемента в массиве,
x - его значение.
getel(int nm):
nm - номер элемента в массиве, который Вы хотите вывести на экран.
Напишите программу, которая заполняет массив последовательно случайными значениями, а потом также последовательно выводит их на экран. Слабо?
Если хочешь возьми куски кода программы, которую я написал вот в этой теме:Из заданной матрицы сформировать одномерный массив; найти среднее арифметическое элементов полученного массива.
0
34 / 10 / 2
Регистрация: 20.02.2016
Сообщений: 1,558
17.09.2016, 14:48  [ТС] 5
Я не помню. пробовал тип и имя переменной, просто одно имя, но ничего не получается.

Добавлено через 1 минуту
Я имею ввиду что писать в скобках в строке 22, 23.
0
130 / 25 / 12
Регистрация: 12.08.2015
Сообщений: 221
17.09.2016, 14:49 6
У вас ошибка здесь!
Ваши функции не принимают никаких аргументов, хотя должны!
C++
1
2
   sa1.putel();
    sa1.getel();
И вообще, зачем этой функции принимать аргументы! Сделайте так!
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
#include<iostream>
using namespace std;
const int limit = 10;
class safearay
{private:
   int mass[limit];
public:
   void putel( void )
   {
       int n, x;
       cin >> n; cin >> x;
       mass[n] = x;
   }
   void getel( void )
   {
       int nm;
       cin >> nm;
       cout << mass[nm];
   }
   };
int main()
{
   safearay sa1;
   sa1.putel();
   sa1.getel();
   system("pause");
   return 0;
}
Но лучше и логичнее будет так! То есть вынести за функцию принятие от пользователя переменных и потом предавать их в функцию.
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
#include<iostream>
using namespace std;
const int limit = 10;
class safearay
{private:
   int mass[limit];
public:
   void putel( int n, int x )
   {
       mass[n] = x;
   }
   void getel( int nm )
   {
       cout << mass[nm];
   }
   };
int main()
{
   safearay sa1;
   int n, x;
   int nm;
   cin >> n; cin >> x;
   sa1.putel( n, x );
   cin >> nm;
   sa1.getel( nm );
   system("pause");
   return 0;
}
Можно, конечно, исправить и Ваш вариант, но он очень неудобен, потому что нет смысла передавать в функцию переменные, которые потом не будут использоваться. Для этого необходимо объявить неиспользуемые переменные и отослать их в функцию, вот так:

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
#include<iostream>
using namespace std;
const int limit = 10;
class safearay
{private:
    int mass[limit];
public:
    void putel(int n, int x )
    {
        cin >> n; cin >> x;
        mass[n] = x;
    }
    void getel(int nm)
    {
        cin >> nm;
        cout << mass[nm];
    }
    };
int main()
{
    int n = 0, x = 0, nm = 0;
    safearay sa1;
    sa1.putel( n, x);
    sa1.getel( nm );
    system("pause");
    return 0;
}
Вы по книге Р. Лафоре занимаетесь? У меня есть решения на все задачи. Если что. Сливать не буду, но объяснить могу.
0
34 / 10 / 2
Регистрация: 20.02.2016
Сообщений: 1,558
17.09.2016, 18:46  [ТС] 7
gledor, спасибо! первый вариант мне нравится больше.
Да, это пример из книги Лафоре, учусь по ней. Так что буду обращаться к вам за помощью.
0
17.09.2016, 18:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.09.2016, 18:46
Помогаю со студенческими работами здесь

Передавать при создании класса, переменную - аргумент функции
1. Вопрос Конструктор класса - метод: CustomGLWidget::CustomGLWidget(QWidget...

Удаление экземпляра класса в функции самого класса (Ошибка при отладке)
Допустим, у нас есть класс Buffer, который хранит в себе указатель на класс некоторой матрицы и...

Ошибка при выведении отчета при смене операционной системы Windows 95 -> Windows 98
Здраствуйте.Возникла проблема с отображением отчета в программе написанной для технологической...

Обратиться к классу через переменную, в которой имя класса
Приветствую. Есть такой класс public class MyClass { public class ChildClass { ...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru