11 / 11 / 1
Регистрация: 06.12.2011
Сообщений: 170
1

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

25.12.2012, 20:14. Показов 565. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2012, 20:14
Ответы с готовыми решениями:

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

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

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

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

1
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.12.2012, 21:29
Помогаю со студенческими работами здесь

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

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

Работа с объектами классов в односвязном списке
Доброго времени суток! Пытаюсь реализовать односвязный список, в который можно добавлять и выводить...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru