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

Не могу понять зачем нужны классы - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 59, средняя оценка - 4.78
Sylar9
-20 / 55 / 2
Регистрация: 04.09.2011
Сообщений: 1,888
Записей в блоге: 1
10.11.2011, 13:05     Не могу понять зачем нужны классы #1
Обьяснити начинающему программисту зачем нужны классы???
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
10.11.2011, 21:25     Не могу понять зачем нужны классы #21
Цитата Сообщение от Байт Посмотреть сообщение
Я имею в виду только создание типов. Как ими манипулировать - это уж другое дело. Можно создать набор функций, и они будут ничем не хуже методов. Только этим функциям надо будет параметром передавать экземпляр типа, а у метода он уже по умолчанию как бы есть (this). На один параметр меньше у методов будет.
Конечно, есть всякие штуки типа инкапсуляции, перегрузки, виртуальности и т.п. Но это в общем-то дело вкуса и привычки. Я как-то обхожусь тем, что пренебрежительно нынче называется процедурным программированием. Но! Когда дело доходит до инкапсуляции Вин-Апи, тут я сдаюсь. Эта Апи такая головоломка, такой чудовищный лабиринт, что спасибо любому, кто в этом разберется и хоть слегка скруглит углы
В том - то и дело, что тип - это не просто набор объектов. Но и операции с этими объектами.
Нам вообще-то говоря, числа нафиг не нужны. Только операции придают числам смысл. Так и со всеми типами данных.

Прочитайте первую главу моей книжки по ООП. Я там прямо целый раздел в начале написал, который так и называется: Зачем нужны классы.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
13954 / 8785 / 1222
Регистрация: 24.12.2010
Сообщений: 15,902
11.11.2011, 00:31     Не могу понять зачем нужны классы #22
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Нам вообще-то говоря, числа нафиг не нужны.
Не обижайте товарища Пеано.

Не по теме:

И если по-честному, кто мы были бы такие без этой первичной абстракции - бесконечного ряда натуральных чисел Так бы и ходили на четырех ногах, и невдомек было б посчитать пальцы на ногах передних.

Bers
Заблокирован
11.11.2011, 01:11     Не могу понять зачем нужны классы #23
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Прочитайте первую главу моей книжки по ООП. Я там прямо целый раздел в начале написал, который так и называется: Зачем нужны классы.
простите, каким образом можно почитать?
silent_1991
11.11.2011, 07:55
  #24

Не по теме:

Цитата Сообщение от Bers Посмотреть сообщение
простите, каким образом можно почитать?
Заранее прошу прощения у ув. ValeryLaptev за то, что отвечаю за него.

Bers, возможно, с помощью глаз?

Bers
11.11.2011, 07:57
  #25

Не по теме:

Цитата Сообщение от silent_1991 Посмотреть сообщение
Заранее прошу прощения у ув. ValeryLaptev за то, что отвечаю за него.
Bers, возможно, с помощью глаз?
Ух ты. клева. А куда мне этими самыми глазами смотреть?
Не, я конечно понимаю, что бы прочитать книгу, надо смотреть в эту самую книгу.

Вопрос: где её взять?

mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
11.11.2011, 08:08     Не могу понять зачем нужны классы #26
Цитата Сообщение от Bers Посмотреть сообщение
Вопрос: где её взять?

Не по теме:

Гугл отменили?


Ссылка не на ozon, потому как там нет в наличии
Bers
Заблокирован
11.11.2011, 08:17     Не могу понять зачем нужны классы #27
Цитата Сообщение от mimicria Посмотреть сообщение
Не по теме:
Гугл отменили?
Я конечно подозревал, что Валерий Лаптев издал книгу под собственным реальным именем.
Но во-первых, мне не было известно точное название книги.

Если загуглить "Валерий Лаптев", то всяких разных Валериев будит очень много.
А что касается с++, то вот например вот такая ссылка:
http://www.kniga.ru/books/346483

И это совсем не похоже на то, что вылезло по вашей ссылочке. Ну и как узнать какая книга - та самая?

Во-вторых, не известно где её можно купить/скачать/заказать. Например, по вашей ссылке "книга в наличии отсутствует"

В третьих, я подумал, может быть автор сам любезно предоставит мне такую возможность. Или хотя бы сообщит точно, где её можно гарантированно раздобыть.
Меня интересует конкретно вот этот вот материал:

Цитата Сообщение от ValeryLaptev Посмотреть сообщение
Прочитайте первую главу моей книжки по ООП. Я там прямо целый раздел в начале написал, который так и называется: Зачем нужны классы.
ValeryLaptev
Эксперт C++
1004 / 783 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
11.11.2011, 08:47     Не могу понять зачем нужны классы #28
Bers, и эту книгу тоже я написал Это первая моя книжка. Но зачем нужны классы я написал в первой главе книжки по ООП. Кстати, в сети дежавю болтается - очень хорошо сделан, с оглавлением. Мы студентам его раздаем...
RASHFor
6 / 6 / 0
Регистрация: 12.02.2012
Сообщений: 224
06.06.2012, 13:49     Не могу понять зачем нужны классы #29
programina,не работает что то твой код пишет:error LNK2019: ссылка на неразрешенный внешний символ
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
06.06.2012, 17:39     Не могу понять зачем нужны классы #30
RASHFor, попробуйте вот это:
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
#include <iostream>
#include <string>
#include <stdlib.h>
 
using namespace std;
 
class Home
{
    public:
        string  name;
        int     age;
 
        void GetName (void)
        {
                cout << "Imya:\t\t" << name << endl;
        }
 
        void GetAge (void)
        {
                cout << "Vozrast:\t" << age << endl;;
        }
};
 
//===========================================================
// Name: main
// Desc: Главная функция
//===========================================================
int main()
{
    Home stat;
 
    cout << "Vvedite imya:";
    cin >> stat.name;
 
    cout << "Vvedite vozrast:";
    cin >> stat.age;
 
    cout << "\n\n\n-------------------------------------\n\n\n";
 
    stat.GetName();
    stat.GetAge();
 
    cout << "\n\n\n-------------------------------------\n\n\n";
 
    system("pause");
    return 0;
}
RASHFor
6 / 6 / 0
Регистрация: 12.02.2012
Сообщений: 224
06.06.2012, 17:48     Не могу понять зачем нужны классы #31
спасибо работает.если не сложно оъясните в чём біла проблем?
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
06.06.2012, 17:51     Не могу понять зачем нужны классы #32
Цитата Сообщение от RASHFor Посмотреть сообщение
оъясните в чём біла проблем?
Там я неправильно написала
RASHFor
6 / 6 / 0
Регистрация: 12.02.2012
Сообщений: 224
06.06.2012, 18:09     Не могу понять зачем нужны классы #33
разрешите вас задолбать.....)))
а если вместо єтой переменной
C++
1
string  name;
использовать,
C++
1
vector<string>  name;
и через while(допустим пока не ввёл 'Q') записывать данные,а потом выводить их.
Впорос: Как сделать чтобы размер вектора не выделял больше памяти чем нужно.Предположим я ввёл три имени,вот и обьём памяти выделен под три имени,а не под 255 или сколько там максимальная длина вектора...
И обращение к вектору тоже будет?
C++
1
cin >> stat.name[i];
Спасибо.
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
06.06.2012, 18:39     Не могу понять зачем нужны классы #34
Цитата Сообщение от RASHFor Посмотреть сообщение
разрешите вас задолбать.....)))
Спасибо, не надо про векторы я вообще ничего не знаю... я сама еще учу С++
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2012, 20:29     Не могу понять зачем нужны классы
Еще ссылки по теме:

Не могу понять классы. Как их наполнить данными? C++
Зачем нужны классы и структуры? C++
Не могу понять задание,пожалуйста.Классы C++

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

Или воспользуйтесь поиском по форуму:
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
06.06.2012, 20:29     Не могу понять зачем нужны классы #35
RASHFor, по правилам форума создается новая тема.

Цитата Сообщение от RASHFor Посмотреть сообщение
Как сделать чтобы размер вектора не выделял больше памяти чем нужно.
Нужно знать это число. Если уверены, что пользователь не введет больше, то можно при конструировании вектора выделить памяти, сколько нужно. Тогда доступ к элементам будет по .at() или operator[], поскольку они сконструирваны.
Вариант два, вы знаете, сколько будет элементов, но не уверены, что пользователь введет именно столько. Сюда же можно приписать и третий вариант, когда количество неизвестно. Тогда есть 3 варианта
  • Забить на это дело
  • Сделать как в первом случае, но отловить тот момент, когда элементы кончатся, после чего выделять место под новые.
  • Выделить память под нужное количество объектов(но не конструировать их) через reserve. Проблема в том, что reserve еще и определяет минимальное количество элементов, под которое будет резервироваться память в том случае, если кончатся элементы. Поэтому, если задать слишком маленькое значение, то есть вероятность того, что слишком часто будет выделяться память.
А вообще, я не вижу в этом особой проблемы. В наше время акцентировать внимание на выделении памяти под 3 элемента - глупо. При том, что штатными средствами без проблем выделяется на 4. Лучше сосредоточтесь на алгоритме.
Цитата Сообщение от RASHFor Посмотреть сообщение
а не под 255 или сколько там максимальная длина вектора...
Смешно
Yandex
Объявления
06.06.2012, 20:29     Не могу понять зачем нужны классы
Ответ Создать тему
Опции темы

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