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

Нелогичная работа кода - C++

Восстановить пароль Регистрация
 
 
MrDreher
1 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 71
15.03.2014, 18:39     Нелогичная работа кода #1
Есть код. Но делает он совсем не то, что по идее должен.
Вот код:
1) файл main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//---------------------------------------------------------------------------
#include "LongNumber.hpp"
#include <iostream>
//---------------------------------------------------------------------------
using namespace std;
//---------------------------------------------------------------------------
int main()
{
        LongNumber a;
        a.setdata();
        a.view();
 
        system("pause");
        return 0;
}
//---------------------------------------------------------------------------
2) Файл LongNumber.hpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#ifndef LONGNUMBER_H
#define LONGNUMBER_H
class LongNumber
{
   private:
        char num[];
        int count;
        int base;
   public:
        LongNumber();
        void setdata();
        void view();
};
#endif
3) Файл LongNumber.hpp
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
#include "LongNumber.hpp"
#include <iostream>
//---------------------------------------------------------------------------
using namespace std;
//---------------------------------------------------------------------------
LongNumber::LongNumber()
{ }
//---------------------------------------------------------------------------
void LongNumber::setdata()
{
        printf("Enter the count: ");
        scanf("%d", &count);
        printf("Enter the number: ");
        scanf("%s",num);
        printf("Enter the base: ");
        scanf("%d",&base);
}
//---------------------------------------------------------------------------
void LongNumber::view()
{
        printf ("Number = %s \n", num);
        printf ("Count = %d \n", count);
        printf ("Base = %i \n", base);
}
//---------------------------------------------------------------------------
Есть задача: ввести с клавиатуры "число"(по сути строку, т.к. число не обязательно в 10чной системе счисления), и ввести основание системы счисления введенного числа. Это метод getdata(). Метод view() должен вывести данные в консоль.
Написал код, вроде должен работать. Но, в итоге получаются какие-то дивные вещи:
1) Вводишь count - все ок. Когда вводишь num то в count уже другие значения.
2) View выводит бред взятый непонятно откуда.

Почему код работает таким странным способом? Как исправить ошибку?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
16.03.2014, 06:23     Нелогичная работа кода #21
Цитата Сообщение от taras atavin Посмотреть сообщение
Да ну! А на чём же её ещё узнавать?
боянишь, тётка. Вырвал фразу из контекста... Отлов екзепшнс изучается абстрактно от языков программирования. Но... в известной литературе используется как правило... ДА!, БЛДЖАД, СИ!.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
16.03.2014, 07:45     Нелогичная работа кода #22
А при чём здесь городская юаня, когда речь о различии между типами? Соответственно надо писать на языке, знакомом с обоими, причём, поддержка только равной, но в другом синтаксисе не подходит.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
16.03.2014, 07:49     Нелогичная работа кода #23
Цитата Сообщение от taras atavin Посмотреть сообщение
А при чём здесь городская юаня, когда речь о различии между типами?
при том что сам приплюснутый язык не дает (точнее снимает) обязанность контроля памяти.
Цитата Сообщение от taras atavin Посмотреть сообщение
Соответственно надо писать на языке, знакомом с обоими.
Надо забыть кресты как страшный сон.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
16.03.2014, 07:51     Нелогичная работа кода #24
Цитата Сообщение от alkagolik Посмотреть сообщение
Отлов екзепшнс изучается абстрактно от языков программирования. Но... в известной литературе используется как правило... ДА!, БЛДЖАД, СИ!.
Не знающий ни классов (а один из обсуждаемых типов - класс), ни экзепшенов.

Добавлено через 1 минуту
Цитата Сообщение от alkagolik Посмотреть сообщение
Надо забыть кресты как страшный сон.
Согласен, кресты надо забыть. В отличие от плюсов.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
16.03.2014, 07:51     Нелогичная работа кода #25
Цитата Сообщение от taras atavin Посмотреть сообщение
Не знающий ни классов, ни экзепшенов.
Привет!. Я так и понял. Квадратные уравнения давно научился решать?
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
16.03.2014, 07:51     Нелогичная работа кода #26
Цитата Сообщение от alkagolik Посмотреть сообщение
при том что сам приплюснутый язык не дает (точнее снимает) обязанность контроля памяти.
Это как? Плюсы - не решётка, на которой попытки контроля памяти бесполезны.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
16.03.2014, 07:55     Нелогичная работа кода #27
Цитата Сообщение от taras atavin Посмотреть сообщение
(а один из обсуждаемых типов - класс
ты инопланетный? класс не есть тип. Это концепт, один из подходов к проектированию в информатике (если коротко). Ты вообще в теме? Сомневаюсь. ЛОЛ

Добавлено через 1 минуту
Цитата Сообщение от taras atavin Посмотреть сообщение
Плюсы - не решётка, на которой попытки контроля памяти бесполезны.
что еще за боян? наследование Си дает полный контроль (и доступ).
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
16.03.2014, 07:58     Нелогичная работа кода #28
Цитата Сообщение от alkagolik Посмотреть сообщение
ты инопланетный? класс не есть тип. Это концепт, один из подходов к проектированию в информатике (если коротко). Ты вообще в теме?
Во-первых любой тип - концепт, способ интерпретации байтов, потому на асме их и нет, а есть только разрядности. А во-вторых класс в программировании - совсем не то, как его переносят в область моделирования реального мира, не любая категория чего угодно, а как раз тип, объединяющий в одной сущности данные и операции с ними. string объединяет в одной сущности формат строки и операции над строками в этом формате и является классом, а указатель - это только место для хранения адреса. И контроль памяти здесь - лишь один из нюансов, не более.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
16.03.2014, 07:59     Нелогичная работа кода #29
перефразирую .. сформулирую:
наследование концепта "с" (абсолютный доступ) приводит к "тираниии".
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
16.03.2014, 08:02     Нелогичная работа кода #30
Цитата Сообщение от alkagolik Посмотреть сообщение
Привет!. Я так и понял. Квадратные уравнения давно научился решать?
В прошлом веке.

Добавлено через 58 секунд
Цитата Сообщение от alkagolik Посмотреть сообщение
что еще за боян? наследование Си дает полный контроль (и доступ).
Какое наследование без классов?
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
16.03.2014, 08:05     Нелогичная работа кода #31
Цитата Сообщение от taras atavin Посмотреть сообщение
Во-первых любой тип - концепт, способ интерпретации байтов,
боян. галимый некомпетентный боян. Тебе сюда

Добавлено через 1 минуту
Цитата Сообщение от taras atavin Посмотреть сообщение
Какое наследование без классов?
наследство от предшественника. Так понятно?. Свойства предшественника, приобретенные по наследству.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
16.03.2014, 08:05     Нелогичная работа кода #32
Уж кто бы говорил о компетентности, здесь некоторые c++ за c принимают и их же ругают.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
16.03.2014, 08:14     Нелогичная работа кода #33
Цитата Сообщение от taras atavin Посмотреть сообщение
Уж кто бы говорил о компетентности
ага. Привет, Андрей!
korvin_
 Аватар для korvin_
1328 / 1099 / 160
Регистрация: 28.04.2012
Сообщений: 3,926
16.03.2014, 18:53     Нелогичная работа кода #34
Цитата Сообщение от taras atavin Посмотреть сообщение
А во-вторых класс в программировании - ... как раз тип
Нет, класс — это реализация типа, интерфейс — тип.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
16.03.2014, 18:59     Нелогичная работа кода #35
Интерфейс - часть класса, такая же, как и реализация.

Добавлено через 1 минуту
alkagolik, как поживают твои галлюцинации?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2014, 19:09     Нелогичная работа кода
Еще ссылки по теме:

Ошибка кода C++
C++ Сортировка Шелла работа кода
C++ Сравнить каждое слово с предыдущи. Непонятна работа кода

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

Или воспользуйтесь поиском по форуму:
DrOffset
6462 / 3836 / 887
Регистрация: 30.01.2014
Сообщений: 6,631
16.03.2014, 19:09     Нелогичная работа кода #36
Устроили тут в теме какую-то вакханалию. Смысл говорить о каких-то абстрактных общих понятиях, когда в стандарте языка черным по белому написано:
9/1
A class is a type. Its name becomes a class-name (9.1) within its scope.
Пора бы уже знать, что С++ не предоставляет идеологически чистого ООП, и не надо пытаться притягивать за уши к нему общие понятия. Хотите обсуждать общие понятия - вон есть целый раздел.
Yandex
Объявления
16.03.2014, 19:09     Нелогичная работа кода
Закрытая тема Создать тему
Опции темы

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