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

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

Войти
Регистрация
Восстановить пароль
 
koderman
2 / 2 / 1
Регистрация: 27.11.2012
Сообщений: 131
#1

У меня вопрос по классам. На приложенных картинках я выделил непонятные строки. - C++

06.12.2012, 16:04. Просмотров 278. Ответов 4
Метки нет (Все метки)

У меня вопрос по классам. На приложенных картинках я выделил непонятные строки. Строка 9.
Переменная int age объявляется в строке 9? Прямо в скобках функции SetAge? Вообще до этого объявление переменных я видел только в отдельных строках. Например так: int age;
Ладно, если переменная была объявлена в строке 9, то почему в строке 25 в скобках указывается тип переменной age тоесть int?
0
Миниатюры
У меня вопрос по классам. На приложенных картинках я выделил непонятные строки.   У меня вопрос по классам. На приложенных картинках я выделил непонятные строки.  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2012, 16:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос У меня вопрос по классам. На приложенных картинках я выделил непонятные строки. (C++):

Вопрос по классам - C++
Есть такой код #include <iostream> class C1{ public: C1(){std::cout <<" 1 is open"<<std::endl;}; ~C1(){std::cout <<" 1...

Вопрос по Классам... - C++
#include <iostream> using std::cout; using std::endl; class GradeBook { public: void displayMessage()

Вопрос по классам - C++
Вообщем есть два класса, TTriangular и TPoint. В TTriangular есть метод, который должен вводить координаты заданной точки. В TPoint...

Вопрос по классам - C++
создал конструктор, который создаёт элемент класса - массив, а вот инициализация данного массива с помощью нового конструктора не...

Вопрос по классам - C++
Опишу определение базавого класса и производного class Date { private: ... public: Date( ){}; ...

Вопрос по классам и функциям - C++
Здравствуйте, вообщем мне надо реализовать примерно такое дело: имеется класс the_class нужно чтобы у каждого экземпляра была...

4
Kuzia domovenok
1892 / 1747 / 119
Регистрация: 25.03.2012
Сообщений: 5,936
Записей в блоге: 1
06.12.2012, 16:07 #2
вообще-то age это аргумент функции (в данном случае функции-члена, но эта тема не относится к классам напрямую). Тебе надо повторить функции в языке Си.
Если ты до этого не сталкивался просто с
функциями с аргументами
или их объявлениями,
или вообще функциями в языке Си,
то классы тебе рано изучать.
0
koderman
2 / 2 / 1
Регистрация: 27.11.2012
Сообщений: 131
07.12.2012, 11:45  [ТС] #3
А, ок. понятно. Тоесть в строке 25 важен только тип int. Имя можно любое писать? И оно может не совпадать в строках 9 и 25?

Добавлено через 19 часов 32 минуты
Про функции я читал, но в привязке с классами это для меня новое.
В строке 9 это значит прототип функции, а в строке 25 определение функции. В строке 9 может и не быть имени age но должен присутствовать тип int, а в строке 25 должен быть и тип и имя int age?
0
Croessmah
Эксперт CЭксперт С++
13513 / 7671 / 866
Регистрация: 27.09.2012
Сообщений: 18,879
Записей в блоге: 3
Завершенные тесты: 1
07.12.2012, 11:51 #4
Цитата Сообщение от koderman Посмотреть сообщение
В строке 9 это значит прототип функции, а в строке 25 определение функции. В строке 9 может и не быть имени age но должен присутствовать тип int, а в строке 25 должен быть и тип и имя int age?
Ага.
Цитата Сообщение от koderman Посмотреть сообщение
Имя можно любое писать?
Ага, только чтобы не совпадало с ключевыми словами языка
0
koderman
2 / 2 / 1
Регистрация: 27.11.2012
Сообщений: 131
07.01.2013, 15:53  [ТС] #5
Нашёл в инете следующую программу:

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
52
53
54
55
2: // Доступ к данным объекта в области динамического обмена
 
3:
 
4: #include <iostream.h>
 
5:
 
6: class SimpleCat
 
7: {
 
8: public:
 
9: SimpleCat() { itsAge = 2; }
 
10: ~SimpleCat() { }
 
11: int GetAge() const { return itsAge; >
 
12: void SetAge(int age) { itsAge = age; }
 
13: private:
 
14: int itsAge;
 
15: };
 
16:
 
17: int main()
 
18: {
 
19: SimpleCat * Frisky = new SimpleCat;
 
20: cout << "Frisky " << Frisky->GetAge() << " years old ";
 
21: Frisky->SetAge(5);
 
22: cout << "Frisky " << Frisky->GetAge() << " years old ";
 
23: delete Frisky;
 
24: return 0;
 
25: }
 
 
 
Результат:
 
Frisky 2 years old
 
Frisky 5 years old
В этой программе я не нашёл объекта. Насколько я помню объект в этом случае должен создаваться так: SimpleCat Frisky;
Тоесть то слово которое идёт после имени класса является объектом. В коде такого нету. По моему Frisky является указателем на экземпляр класса SimpleCat, но это не объект.


Вот описание к коду которое было при нём:

Анализ: В строке 19 в области динамического обмена выделяется память для хранения экземпляра класса SimpleCat. Конструктор, вызываемый по умолчанию, присваивает новому объекту возраст два года. Это значение получено как результат выполнения функции-члена GetAge(), которая вызывается в строке 20. Поскольку мы имеем дело с указателем на объект, для вызова функции используется оператор косвенного обращения к члену класса (->). В строке 21 для установки нового значения возраста вызывается метод SetAge(), а повторный вызов функции GetAge() (строка 22) позволяет получить это значение.
0
07.01.2013, 15:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2013, 15:53
Привет! Вот еще темы с ответами:

Вопрос о картинках, вопрос о формулах - VBA
Всем доброго времени суток! Как обычно глупые вопросы... Вопрос первый, с сайта копируется информация (картинки + циферки ;-)) Так...

вопрос по классам - C++ Builder
Задание состоит в том, что создается класс для работы с векторами, одна из функций должна выполнять отнимание векторов, с ней у меня и...

Вопрос по классам в Фортране - Fortran
А можно попросить Вас хотя бы немножко помочь в описании данной программы? Мне нужно создать класс фрукт с набором свойств и методом.К...

помогите разобраться в одном коде ввод имя с клавиатуры а вывести его на родительном падеже у меня получилось сплошные непонятные симболы!! - Assembler
.286 .model tiny .code org 100h start: mov ax,3 int 10h mov ah,9 mov dx,offset string int...


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

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

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