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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2009, 21:45   #1
ArtiSoft
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 21
По умолчанию Определить конструктор для инициализации полей по умолчанию

У меня такое задание по лабу, кстати она самая сложная и последняя:
дана структура:

struct Student
{
char *LastName;
char *FirstName;
char *Patronimyc;
int Born;
char *Group;
}

Определить конструктор для инициализации полей по умолчанию. Определить конструктор копирования и деструктор. Написать тестовый пример. Строковые поля описать как указатели, при этом в конструкторе должно производиться не тупое присвоение указателей, а копирование строк. Также внести в класс тестовую функцию - изменяющую первую букву отчества на 'Ы' для проверки корректности конструктора.


так вот я ничего непонял что делать?
ArtiSoft вне форума Ответить с цитированием
Старый 10.12.2009, 22:36   #2
ArtiSoft
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 21
По умолчанию

Ничего не нашел)) я учусь в красткосрочной форме, т.е. университете мне учится 3 года. это для студентов после колледжа. Мы за один семестр проходим как в обычной форме за два семестра. Нам быстро все подряд дает и неюспевают подробно объяснять(((
ArtiSoft вне форума Ответить с цитированием
Старый 10.12.2009, 22:42   #3
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

После внесения изменений структура должна выглядеть таким образом:
Код:
struct Student
{
Student(char* lastname, char* firstname, char* patron, int born, char* group); //Конструктор
Student(const& Student OtherStudent); //Конструктор копирования
~Student(); //Деструктор
void TestFunction(); //Тестовая функция
char *LastName;
char *FirstName;
char *Patronimyc;
int Born;
char *Group;
}
Вы хотя бы знаете, что такое конструкторы и деструкторы? Или вы все-таки что-то поняли "что делать"?
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 18.12.2009, 10:43   #4
ArtiSoft
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 21
По умолчанию

Гром , да я знаю что такое конструктор и деструктор териотически)) просто для структура не представлял как будет. оказывается что это также как для класса)) спасибо
ArtiSoft вне форума Ответить с цитированием
Старый 18.12.2009, 10:49   #5
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Цитата:
Определить конструктор для инициализации полей по умолчанию
Код:
struct Student
{
	Student()
		:LastName(0), FirstName(0), Patronimyc(0), Born(0), Group(0)
	{

	}

	char *LastName;
	char *FirstName;
	char *Patronimyc;
	int Born;
	char *Group;
}
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 20.12.2009, 11:02   #6
ArtiSoft
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 21
По умолчанию

а конструктор копирования будет выглядеть следующим образом:
Код:
int main() {
Student B={...};
Student A(B)
...
}
правильно ли я понял?
ArtiSoft вне форума Ответить с цитированием
Старый 20.12.2009, 11:42   #7
ArtiSoft
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 21
По умолчанию

Student(const& Student OtherStudent); //Конструктор копирования

а может правильнее будет вот так:
Код:
Student(const TStudent &);
ArtiSoft вне форума Ответить с цитированием
Старый 20.12.2009, 11:44   #8
RoS
Форумчанин
 
Аватар для RoS
 
Регистрация: 13.12.2009
Сообщений: 272
По умолчанию

#6 да, именно так!
Грустно только что это самая сложная лаба
Если я помог вам - порадуйте меня, нажмите на весы слева
RoS вне форума Ответить с цитированием
Старый 20.12.2009, 11:57   #9
RoS
Форумчанин
 
Аватар для RoS
 
Регистрация: 13.12.2009
Сообщений: 272
По умолчанию

Цитата:
Сообщение от ArtiSoft Посмотреть сообщение
Student(const& Student OtherStudent); //Конструктор копирования

а может правильнее будет вот так:
Код:
Student(const TStudent &);
Констурктор копирования выглядит так в общем виде

Х(X&)
Если я помог вам - порадуйте меня, нажмите на весы слева
RoS вне форума Ответить с цитированием
Старый 20.12.2009, 18:18   #10
ArtiSoft
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 21
По умолчанию

А что будет если поменять слово stuct на class? я как понимаю изменится доступ, потому что у класса по умолчанию закрытый доступ private. Я правильно понимаю?
ArtiSoft вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объеденение полей запроса в для отображения нескольких полей в одном списке mrCreator Microsoft Office Access 3 08.08.2009 00:53
Заполнение полей по умолчанию matroskin24 БД в Delphi 14 12.01.2009 18:22
Конструктор по умолчанию Rembo Общие вопросы C/C++ 9 30.07.2008 09:54
Как определить содинение по умолчанию ? Crazyman Работа с сетью в Delphi 5 30.06.2008 00:24