Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Jack Wade
62 / 35 / 6
Регистрация: 24.02.2013
Сообщений: 250
#1

Не вводится int в функции класса - C++

03.09.2013, 01:05. Просмотров 263. Ответов 2
Метки нет (Все метки)

Помогите пожалуйста...
Я хочу сделать Свой класс, в котором будут функции, одинаковые по названию, одинаковые по типу, но разные по водимым параметрам.
Т.е. что Я хочу сделать...
Вот, у Меня есть некий класс:
Кликните здесь для просмотра всего текста

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
44
45
46
47
48
49
50
51
#include "stdafx.h"//В этот файл, добавляем [ #define _CRT_SECURE_NO_WARNINGS ]
#include <locale.h>
#include <stdio.h>
#include <Windows.h>
 
class CPascal//Мой класс функций ввода-вывода
{
    public://Функции "общедоступны"
            //Т.е. они могут быть унаследованны другим классом
            void readln(int x)
            {
            scanf("%d", &x);
            }
            void readln(char s[255])
            {
            gets(s);
            };
            void writeln(int x)
            {
            printf("%d\n", x);
            };
            void writeln(char s[255])
            {
            printf("%s\n", s);
            };
};
 
CPascal PascalFunction;//Переменная Моего класса
 
int _tmain(int argc, _TCHAR* argv[])
{
    char stroka[255]="NONE";//По умолчанию - строка равна "NONE"
          int chislo=0;//По умолчанию - число равно нулю
    setlocale(LC_ALL,"Russian");
        //Вот данный кусок кода - работает...
    //scanf("%d", &chislo);
    //system("pause");
    //system("cls");
    //printf("%d\n", chislo);
    //system("pause");
        //А вот здесь уже - ошибка... хотя, код по сути - один и тот же...
            //При вводе в PascalFunction.readln(char[255]) - строка вводится...
            //А если ввести PascalFunction.readln(int) - число остаётся в итоге пустым...
    PascalFunction.readln(chislo);
    system("pause");
    system("cls");
    PascalFunction.writeln(chislo);
    system("pause");
    system("cls");
    return 0;
}

Самое главное - строка то ведь изменяется в данном коде, а вот integer не в какую...
Я хочу сделать функцию, в которую нужно лишь посылать параметр, и которая будет возвращать в саму переменную результат, но что бы был тип у функции void...
В краце - хочу сделать "процедуру"(в С/C++ нету процедур, но есть без типовые функции, использовать которые Я бы и хотел в качестве "процедур"), которая заносит значение в посылаемую переменную...
Подскажите, "что не так"?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.09.2013, 01:05     Не вводится int в функции класса
Посмотрите здесь:

Возврат из функции int main() в С++ C++
C++ вводится координата точки определить принадлежит ли данная точка функции
C++ Дата вводится строкой нужно извлечь день месяц и год в int переменные
C++ Что делают функции int(), float()?
Перегрузка функции int double C++
C++ Как полю класса А обратится к приватной функции класса А?
C++ Путь к файлу вводится в командной строке как аргумент функции main()
Написать определение класса leverage, включающего одно закрытое поле типа int с именем crowbar и одним открыты C++
C++ Ошибка "missing type specifier - int assumed" В шаблоне класса
Как использовать значения переменой с одного класса в int main() C++
Изменение статического закрытого элемента данных класса посредством статической элемент-функции класса C++
Написать функции для преобразования IP адреса из dot-decimal нотации в int и из int в dot-decimal нотацию C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xanderfomin
40 / 37 / 8
Регистрация: 25.10.2012
Сообщений: 112
03.09.2013, 02:16     Не вводится int в функции класса #2
Если вкратце - в одном случае в функцию передаётся указатель, а в другом - значение.
Для начала почитай, например, вот этот тред, чтобы уяснить себе разницу между передачей по значению и по ссылке.
Функция должна выглядеть так:
C++
1
2
3
4
void readln(int* x)
{
     scanf("%d", x);
}
А её вызов - так:
C++
1
PascalFunction.readln(&chislo);
Jack Wade
62 / 35 / 6
Регистрация: 24.02.2013
Сообщений: 250
03.09.2013, 08:18  [ТС]     Не вводится int в функции класса #3
xanderfomin, спасибо!
Yandex
Объявления
03.09.2013, 08:18     Не вводится int в функции класса
Ответ Создать тему
Опции темы

Текущее время: 22:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru