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

Конструктор копирования - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Программа определяет сколько дней от текущей даты осталось до нового года и дня рождения http://www.cyberforum.ru/cpp-beginners/thread956832.html
Программа определяет сколько дней от текущей даты осталось до нового года и дня рождения ,текущую дату и день рождения вводится с клавиатуры, в программе должен быть разработан класс Dats. Помогите пожалйусто с написанием . Добавлено через 9 часов 33 минуты Хелп Пункт 5.5 Правил. Дублирование тем запрещено.
C++ Подсчитать количество значений Доброго времени суток! Есть задача : вводятся с клавиатуры фамилии N кандидатов, подсчитать, сколько раз была введена каждая фамилия. Есть массив с этими фамилиями, но я не могу придумать как их подсчитать? Сначала думал создать массив типа int и паралельно считать, но было много проблем с индексацией. Есть 2 примера кода: (оба рабочие имеется ввиду ввод фамилий в массив) #include "stdafx.h"... http://www.cyberforum.ru/cpp-beginners/thread956808.html
Пасхалка C++
Всем привет. Какую безобидную пасхалку можно придумать?)) Какую пасхалку можно придумать в лабе? Чисто для фана
C++ Получить третий файл, содержащий чётные строки первого файла и нечётные строки второго файла
Даны два файла, получить третий, содержащий чётные строки первого файла и нечётные строки второго файла. Вообще не имею понятия, как проверяют чётность и нечётность строк. Помогите пожалуйста. Если можно и на паскале.
C++ реализация итератора http://www.cyberforum.ru/cpp-beginners/thread956780.html
Реализация класса List и его итератора: #ifndef LIST_H #define LIST_H #include<iostream> template<class T> class List {
C++ результат сложения двух соседних чисел в последовательности Здравствуйте! Помогите пожалуйста, нужно задачу на завтра сделать, никак не дойдет как. Объясните если не трудно Ввести с клавиатуры последовательность чисел и вывести результат сложения двух соседних чисел в последовательности (последнее число не имеет соседа) подробнее

Показать сообщение отдельно
Высокий
 Аватар для Высокий
242 / 242 / 58
Регистрация: 09.04.2011
Сообщений: 524
18.09.2013, 08:23     Конструктор копирования
Здравствуйте. Есть класс. Не могу понять как правильно написать и вызвать конструктор копирования.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
#include <string.h> 
#include <iostream>
using namespace std;
 
class Student
{
private:
    char* name;
    char* surname;
    char* dateOfBirth;
    char* numberOfGroup;
    int* course;
 
public:
    Student();                                                                                      //конструктор без параметров
    Student(char* _name, char* _surname, char* _dateOfBirth, char* _numberOfGroup, int* _course);   //конструктор с параметрами
    Student(Student &_student);       //конструктор копирования
    ~Student();                                                                                     //деструктор
    void ShowStudent();                                                                             //Метод вывода на экран 
    void setName(char* _name);
    void setSurname(char* _surname);
    void setDateOfBirth(char* _dateOfBirth);
    void setNumberOfGroup(char* _numberOfGroup);
    void setCourse(int* _course);
};
 
Student::Student()
{
    name = new char[4];
    strcpy(name, "John");
    surname = new char[3];
    strcpy(surname, "Dow");
    dateOfBirth = new char[10];
    strcpy(dateOfBirth, "01.01.2000");
    numberOfGroup = new char[10];
    strcpy(numberOfGroup, "0000000000");
    course = new int(1);
}
 
Student::Student(char* _name, char* _surname, char* _dateOfBirth, char* _numberOfGroup, int* _course)
{
    name = new char[strlen(_name)];
    strcpy(name, _name);
    surname = new char[strlen(_surname)];
    strcpy(surname, _surname);
    dateOfBirth = new char[strlen(_dateOfBirth)];
    strcpy(dateOfBirth, _dateOfBirth);
    numberOfGroup = new char[strlen(_numberOfGroup)];
    strcpy(numberOfGroup, _numberOfGroup);
    course = new int(*_course);
}
 
Student::Student(Student & _student)   //конструктор копирования
{
    name = new char[strlen(_student.name)];
    strcpy(name, _student.name);
    surname = new char[strlen(_student.surname)];
    strcpy(surname, _student.surname);
    dateOfBirth = new char[strlen(_student.dateOfBirth)];
    strcpy(dateOfBirth, _student.dateOfBirth);
    numberOfGroup = new char[strlen(_student.numberOfGroup)];
    strcpy(numberOfGroup, _student.numberOfGroup);
    course = new int;
    course = _student.course;
}
 
Student::~Student()
{
    delete name;
    delete surname;
    delete dateOfBirth;
    delete numberOfGroup;
    delete course;
}
void Student::ShowStudent()
{
    cout << "Name: " << name << endl;
    cout << "Surname: " << surname << endl;
    cout << "Date of birth: " << dateOfBirth << endl;
    cout << "Number of group: " << numberOfGroup << endl;
    cout << "Course: " << *course;
}
 
void Student::setName(char* _name)
{
    strcpy(name, _name);
}
 
void Student::setSurname(char* _surname)
{
    strcpy(surname, _surname);
}
 
void Student::setDateOfBirth(char* _dateOfBirth)
{
    strcpy(dateOfBirth, _dateOfBirth);
}
 
void Student::setNumberOfGroup(char* _numberOfGroup)
{
    strcpy(numberOfGroup, _numberOfGroup);
}
 
void Student::setCourse(int* _course)
{
    *course = *_course;
}
 
int main(int argc, char const *argv[])
{
    cout << "First Student:" << endl;
    char* _name = new char[20];
    char* _surname = new char[20];
    char* _dateOfBirth = new char[10];
    char* _numberOfGroup = new char[10];
    int _course;
    cout << "Enter name: ";
    cin >> _name;
    cout << "Enter surname: ";
    cin >> _surname;
    cout << "Enter date of birth (dd.mm.gggg): ";
    cin >> _dateOfBirth;
    cout << "Enter number of group (xxxxxxxxxx): ";
    cin >> _numberOfGroup;
    cout << "Enter course: ";
    cin >> _course;
    Student* firstStudent = new Student(_name, _surname, _dateOfBirth, _numberOfGroup, &_course);
    Student* secondStudent = Student(firstStudent);            //Вызов конструктора копирования
    cout << "Second Student:" << endl;
    cout << "Enter name: ";
    cin >> _name;
    cout << "Enter surname: ";
    cin >> _surname;
    cout << "Enter date of birth (dd.mm.gggg): ";
    cin >> _dateOfBirth;
    cout << "Enter number of group (xxxxxxxxxx): ";
    cin >> _numberOfGroup;
    cout << "Enter course: ";
    cin >> _course;
    firstStudent->setName(_name);
    firstStudent->setSurname(_surname);
    firstStudent->setDateOfBirth(_dateOfBirth);
    firstStudent->setNumberOfGroup(_numberOfGroup);
    firstStudent->setCourse(&_course);                                                      
    cout << "First Student:" << endl;
    secondStudent->ShowStudent();
    cout << endl << "Second Student:" << endl;
    firstStudent->ShowStudent();
    delete _name;
    delete _surname;
    delete _dateOfBirth;
    delete _numberOfGroup;
    delete firstStudent;
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 21:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru