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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Бартимеус
181 / 33 / 2
Регистрация: 29.10.2008
Сообщений: 283
#1

Не могу понять, как пользоваться методами - C++

24.11.2008, 19:25. Просмотров 1119. Ответов 11
Метки нет (Все метки)

Не могу разобраться с классами, помогите кто может!
Я понимаю зачем нужен класс, и разницу открытых и закрытых данных, но не могу понять как пользоваться методами. подскажите где можно найти статьи в которых все разложено по полочкам или так объясните. Пожалуйста!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2008, 19:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не могу понять, как пользоваться методами (C++):

Как пользоваться методами массива? - C++
Поясните на примере vs 2013 int _tmain() { setlocale(LC_ALL, ""); string w; cout << "размер текущего массива " << w->size()...

Стек на основе массива структур - эт как понять читаю литературу и не могу понять! - C++
Стек статически (на основе массива структур). Пример структура "Товар" которая включает в себя: № по каталогу(ключ), Название, цена, срок...

Может ли наследник пользоваться не всеми методами родителя, а только частью? - C++
Всем привет, есть вопрос, может ли наследник пользоваться не всеми методами родителя, а только теми которые нужны мне. Например есть класс...

Какими методами для работы с файлами и каталогами следует пользоваться? - C++
Недавно изучаю, C++. И в отличие от PHP, он наполнен большим количеством функций, для решения одной и той же задачи. Когда я ищу в...

Не могу понять как написать - C++
Доброго времени суток. Не мог бы кто помочь в написании программ: 1. Определить имеет ли действительные корни уравнение ax2 + bx + c =...

Не могу понять как передать - C++
есть код #include "stdafx.h" #include <iostream> #include <Windows.h> #include <time.h> #include <ctime> #include <tchar.h> ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Helen
1 / 1 / 0
Регистрация: 23.10.2008
Сообщений: 13
24.11.2008, 19:48 #2
Попробуй найти книжку Ю.Тихомиров Visual C++6. Там есть глава про классы и вообще книжка хорошая. Вообще про классы сложно объяснить в двух словах, так чтобы стало понятно, их почувствовать нужно
Бартимеус
181 / 33 / 2
Регистрация: 29.10.2008
Сообщений: 283
24.11.2008, 20:11  [ТС] #3
на данный момент мне надо объяснить вот эти две строчки
int GetAge();
void SetAge(int Age);
это фрагмент листинга книги С++ за 21 день (3 издание); стр 42... на всякий случай
Helen
1 / 1 / 0
Регистрация: 23.10.2008
Сообщений: 13
24.11.2008, 20:37 #4
Что там за книжка я не знаю, но судя по контексту int GetAge() - это метод, который возвращает какой-то возраст, т.е. у класса видимо есть поле типа int, причем оно private, т.е. значение этого поля просто так, как переменную не получишь. Поэтому нужен специальный метод, который будет значение это переменной (поля) выковыривать. void SetAge (int Age) напротив в это приватное поле записывает значение Age. Мораль такова, к приватным полям класса просто так не достучишься, надо писать специальные методы этого класса, которые будут читать и записывать значение данного поля.
Бартимеус
181 / 33 / 2
Регистрация: 29.10.2008
Сообщений: 283
24.11.2008, 21:03  [ТС] #5
Значит чтобы что то записать в переменную обязательно должна быть строчка void SetAge()?
Helen
1 / 1 / 0
Регистрация: 23.10.2008
Сообщений: 13
24.11.2008, 21:57 #6
Там будет не просто эта строчка. Давай допустим, что у тебя есть класс CMyClass, у него есть приватное поле Age.
Ну типа того:
C++
1
2
3
4
5
6
7
8
9
class CMyClass()
{
private:
int Age;
// ...
public:
void SetAge(int Age);
// ...
};
есть объект это класса: CMyClass MyObject
так вот метод void SetAge(int Age) нужен для того, чтобы засунуть в поле Age какое-то число. Пример: MyObject.SetAge(10); В поле Age записалось чило 10.
StarWorm
17 / 16 / 4
Регистрация: 20.11.2008
Сообщений: 81
25.11.2008, 12:42 #7
P.S. метод (функция) не обязательно должна называться set...() - это просто так принято, что при занесении переменной в класс (структуру) он называется setVar, а при получении ее из класса - getVar... Но ты можешь и другие названия придумать!!!
Бартимеус
181 / 33 / 2
Регистрация: 29.10.2008
Сообщений: 283
25.11.2008, 13:27  [ТС] #8
Как засунуть понял. А чтобы взять из класса надо создать метод
int GetAge() так? А что надо написать в функции?
StarWorm
17 / 16 / 4
Регистрация: 20.11.2008
Сообщений: 81
25.11.2008, 13:55 #9
Код
int getAge()
{
   return Age;
}
BornLeader
50 / 46 / 1
Регистрация: 16.05.2008
Сообщений: 162
26.11.2008, 12:43 #10
Чтобы разобраться по нормальному лучше почитай "Бьерн Страуструп - Язык программирования C++", тогда и таких элементарных вопросов не будет.
Лучшего чтива я не встречал.
Helen
1 / 1 / 0
Регистрация: 23.10.2008
Сообщений: 13
26.11.2008, 12:58 #11
Точно-точно, классику жанра надо уважать
Жестянка
сцуко киборг
102 / 29 / 2
Регистрация: 11.09.2008
Сообщений: 193
26.11.2008, 20:20 #12
Значить так: у класса есть 2 типа собственных переменных:
"открытые" (объявленные в области public:) и "закрытые" (объявленные в области private:).

К любой открытой перемноой можно обратиться просто так из любого места программы. Например, если бы переменная Age была объявлена в области private:, её значение можно было бы достать так:
Код
CMyClass Var1;
Var1.Age=5;
int Var2=Var1.Age
Но в данном случае она объявлена как закрытая. Тоесть обратиться к ней напрямую можно только внутри класса, а прога, юзающая класс, её не видит.

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

Добавлено через 50 секунд
как-то так.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2008, 20:20
Привет! Вот еще темы с ответами:

Не могу понять как работает программа - C++
Здравствуйте люди.Помогите понять как работают фнкции в программе(см. ниже). Учусь по книге Стефана Девидса С++ для чайников 4-е и 5-е...

Не могу понять, как работает программа - C++
Здравствуйте, непонятны некоторые функции программы. Спасибо. #include <iostream> #include <conio.h> #include <cstring> ...

Не могу понять как исправить ошибку - C++
#include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- ...

Не могу понять, как найти сумму - C++
Здравствуйте. Программу делаю, никак не могу понять, как сделать вот задание: "найти сумму элементов массива, расположенных между первым...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.11.2008, 20:20
Ответ Создать тему
Опции темы

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