Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2012, 12:53   #1
Shadol
Пользователь
 
Регистрация: 23.11.2009
Сообщений: 10
По умолчанию C++ Как изменять значения закрытых данных переменных через функцию с открытыми данными?Правильно ли я понимаю создание объектов?

Привет!
На этапе прочтения книги "C++ за 21 день",я столкнулся с вопросом изменения данных закрытых переменных путем их изменения через использование метода с открытыми данными.Собственно вот:
Код:
class Cat
{
public:
edit_the_closed_variable(); //Какой код для функции нужно прописать,
private:
int first_number;
int second_number; // чтобы изменить значения этих двух переменных?
}

И вот еще вопрос насчет того,правильно ли я понимаю смысл создания объектов для классов:"Предположим я создал класс: "Car", далее,чтобы вызывать переменные или методы из этого класса,я создаю объект,например, Car Door;. Получается мы создаем объекты для классов,потому что название класса равносильно типу переменной или константы и поэтому его нельзя использовать для вызова,а прибегать к вызову переменной или метода можно только через объект,принадлежащий этому классу?"
Shadol вне форума Ответить с цитированием
Старый 14.02.2012, 13:12   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

private, он для того и private, что-бы эти переменные нельзя было изменить напрямую из программы пользователя. Но есть обходной путь, это геттеры и сеттеры или изменение этих переменных через функции класса (если это предусмотрено разработчиком).
Второй вопрос совсем не понял (сумбурно описано). Но если я правильно понял, вам нужно доступиться к функции этого класса? Тогда создаёте объект класса и уже через этот объект Вам будет доступна его функция объявленная в public.
И ещё. Нет типа возвращаемого значения у функции edit_the_closed_variable();.
Если она ничего не возвращает, пишите void edit_the_closed_variable();
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 14.02.2012 в 13:14.
Smitt&Wesson вне форума Ответить с цитированием
Старый 14.02.2012, 13:28   #3
Shadol
Пользователь
 
Регистрация: 23.11.2009
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
private, он для того и private, что-бы эти переменные нельзя было изменить напрямую из программы пользователя. Но есть обходной путь, это геттеры и сеттеры или изменение этих переменных через функции класса (если это предусмотрено разработчиком).
Второй вопрос совсем не понял (сумбурно описано). Но если я правильно понял, вам нужно доступиться к функции этого класса? Тогда создаёте объект класса и уже через этот объект Вам будет доступна его функция объявленная в public.
И ещё. Нет типа возвращаемого значения у функции edit_the_closed_variable();.
Если она ничего не возвращает, пишите void edit_the_closed_variable();
И правда, забыл указать тип возвращаемого значения.Вот вы сказали, что можно изменять переменные через функции класса,вот про это я и хотел узнать.Каким простейшим образом можно изменить закрытую переменную используя функцию класса?

Насчет второго:"Да согласен,непонятно мысль изложил."Суть была в том,чтобы узнать зачем нужны объекты в С++.
Shadol вне форума Ответить с цитированием
Старый 14.02.2012, 13:42   #4
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Код:
class Cat {
public:
void setFirst(int first);
int getFirst(); 
private:
int first_number;
int second_number; 
}

void Cat::setFirst(int first) { this->first_number = first; }
int Cat::getFirst() { return this->first_number; }
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 14.02.2012, 13:58   #5
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Суть была в том,чтобы узнать зачем нужны объекты в С++.
Объекты (в отличии от структур) содержат не только данные, но и события и методы обработки этих данных. Хотя в С++ и в структурах можно использовать функции-обработчики, но это дело вкуса.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужно брать из xml-базы данных значения на любом уровне вложенности а также изменять их и записывать. Anatoliy19 Помощь студентам 3 19.11.2011 20:39
Как правильнее изменять выделенные значения в таблице? delphicoding БД в Delphi 1 16.10.2011 15:41
вектор как закрытый член класса, как изменять его значения? Zhigool' Общие вопросы C/C++ 3 08.08.2010 23:19
Как правильно инициализировать через функцию массив? Catharsis Общие вопросы C/C++ 3 14.05.2010 16:34
Как правильно изменять данные в теблице БД!? AK BULLETS БД в Delphi 5 23.03.2010 11:18