Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
korsarqa
7 / 7 / 1
Регистрация: 06.12.2011
Сообщений: 170
1

Работа с объектами

25.12.2012, 20:14. Просмотров 296. Ответов 1
Метки нет (Все метки)

Здравствуйте, делаю курсовую по работе с датами, их вычитанием и сложением.

Вообще в начале у меня идет процесс инициализации даты, где в конце кода создается объект
C++
1
Date* a=new Date(year1,month1,day1,hour1,min1,sec1);
Мы передаем полученные переменные в конструктор который имеет следующий код

C++
1
2
3
4
5
6
7
8
9
Date::Date(int y=0, int mon=0, int d=0, int h = 0, int m = 0, int s = 0)
{
    year=y;
    month=mon;
    day=d;
    hour=h;
    min=m;
    sec=s;
}
Далее у меня создается функция прибавления к дате указанного числа дней, месяцев и т.д.
Вопрос: как можно с конструктора взять значения этих переменных - year,month,day etc
Пробовал так:
C++
1
2
3
Date* a
int y;
y=a->year;
Вызывается ошибка, что переменная недоступна
Переменные year month,day... находятся в классе Date в private
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2012, 20:14
Ответы с готовыми решениями:

Работа с объектами в С++
С текстового файла считывается информация о студентах (фамилия, когда и на...

Работа с объектами классов
Всем здраствуйте. Помогите если вам не так сложно :) Вот сейчас я поясню, то...

Работа с объектами типа string
Здравия желаю!:) Возник вопрос по строкам. При таком...

Работа с объектами внутри класса.
Вот два класса подскажите что здесь не так. Функция sh класса Engine должна...

Классы. Работа с объектами типа массив
Не нашел подобной темы на форуме, да и вообще в интернете :( Создать объекты...

1
Nagdiel
116 / 115 / 8
Регистрация: 23.12.2012
Сообщений: 195
25.12.2012, 21:29 2
1) Поля объявленные в private секции класса напрямую недоступны, чтобы получить к ним доступ нужно создать какой нибудь-метод, например
C++
1
int Date::getYear () {return year;}
Метод должен быть объявлен в public секции.

2) Запись
C++
1
Date* a;
означает объявление указателя на класс Date. Соответсвующий объект при этом не создается, поля объекта не инициализируются. Для создания объекта необходимо использовать оператор new, примерно так

C++
1
2
3
Date* a = new Date(/*здесь значения параметров класса в соответствии с синтаксисом конструктора*/); 
// или 
Date *a = new Date(); // В этом случае поля объекта инициализируется значениями по умолчанию (в нашем случае это нули) //
После этого можно получить доступ к полям объекта:

C++
1
int y = a->getYear()
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.12.2012, 21:29

Правильное использование переменных, работа с объектами
Собственно сабж. Какой способ использования переменных верный: 1) создание...

Работа с объектами класса: вывод на консоль, подсчет суммы
Здравствуйте, уважаемые программисты. Возникла проблема: 1) Не получается...

Работа с объектами из разных файлов, использования указателя на текущий объект
Добрый день. Очень хотел бы получить помощь по следующему вопросу. мне...


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

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

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