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

Конструкторы и классы - C++

Восстановить пароль Регистрация
 
Alexandr-
0 / 0 / 0
Регистрация: 15.09.2012
Сообщений: 78
20.10.2013, 11:15     Конструкторы и классы #1
Определить класс список элементов. В определение класса включить два конструктора: для определения списка по его размеру и путем копирования другого списка. Предусмотреть функции подсчёта количества элементов списка и добавления одного списка в другой список, начиная с позиции N.

С помощью учебника немного разобрался, что такое конструктор, но все равно плохо понимаю, как с ним работать(хотя скорее плохо понимаю, как работать с классами). В задаче понял только, как создать конструктор копирования... Помогите с задачей кому не сложно... Заранее спасибо.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
using namespace std;
class Worker
{ char str[30];
public:
    Worker(char *str1) { 
    cout<<"konstruktor kopirovaniya - nachalo"<<endl; //konstr kopirovaniya
    cout <<"vvodim: "<<str1<<endl;
strcpy(str,str1);
cout<<str<<endl;
cout<<"konstruktor kopirovaniya - konec"<<endl;
    } //konstr kopirovaniya zakonchilsya
}; 
int main () { 
Worker tp("Randy");
cout <<"rabotaet"<<endl;
system ("pause");
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.10.2013, 11:26     Конструкторы и классы #2
Вот это не конструктор копирования:
C++
1
Worker(char *str1);
Это просто конструктор. Конструктор копирования так выглядит:
C++
1
Worker(const Worker&);
Alexandr-
0 / 0 / 0
Регистрация: 15.09.2012
Сообщений: 78
20.10.2013, 12:19  [ТС]     Конструкторы и классы #3
А в чем разница, ведь и так копирует?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
20.10.2013, 12:34     Конструкторы и классы #4
Цитата Сообщение от Alexandr- Посмотреть сообщение
А в чем разница, ведь и так копирует?
Конструктор копирования - это специальный конструктор, который вызывается в определённых случаях. Если в классе явно не задан конструктор копированя, то будет использоваться конструктор копирования по умолчанию. Например:
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
#include <iostream>
#include <string>
using namespace std;
class Worker
{ 
    char str[30];
public:
    Worker(char *str1) 
    { 
        cout<<"konstruktor kopirovaniya - nachalo" << endl; //konstr kopirovaniya
        cout << "vvodim: "<< str1 << endl;
        strcpy(str,str1);
        cout << str << endl;
        cout << "konstruktor kopirovaniya - konec"<<endl;
    } //konstr kopirovaniya zakonchilsya
    
    void show()
    {
        cout << str << endl;
    }
 
}; 
 
int main () 
{ 
    Worker tp("Randy");
    tp.show();
 
    Worker w(tp); // будет вызван конструктор копирования по умолчанию для инициализации w
    w.show();
 
    system ("pause");
    return 0;
}
Yandex
Объявления
20.10.2013, 12:34     Конструкторы и классы
Ответ Создать тему
Опции темы

Текущее время: 01:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru