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

конструкторы - C++

Восстановить пароль Регистрация
 
Icelope
0 / 0 / 0
Регистрация: 18.01.2010
Сообщений: 12
10.10.2010, 05:42     конструкторы #1
Доброе время суток!
Помогите разобраться с конструктором. Что это такое и с чем его едят. Так как сдала лабу преподавателю, ну вроде ж всё нормально, а вот надо ему конструкторы прицепить... а куда и зачем не понятно...
Задание звучит так:
создать порожденный класс, путем реализации характеристик:1.Измерения: название измеряемой величины, нижний предел, верхний предел, погрешность.2. Габариты: длина, высота, ширина.3. Вес.
4. Стоимость.
Заранее спасибо))


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
#include "stdafx.h"
#include "conio.h"
#include "iostream"
#include "string.h"
using namespace std;
 
struct gabariti{ 
float dlina;
float visota;
float wirina;
float ves;
char napriagenie[6];
char tok[6];
char chastota[10];};
 
class ground{
virtual void info()=0;};
 
class first:public ground{ 
 
protected: 
int x;
public:
first(int x1){x=x1;}
first(){x=1;}
char name [30];
gabariti a[3];
 
virtual void info(){};
 
void input_name(){
cout <<"\nVvedite nazvanie pribora: "<<endl;
cin>>name;};
 
void print_name(){
cout<<"\nIm'a pribora: "<<name<<endl;};
 
void input_gabariti(){
int i;
for (i=0; i<3; i++){
cout <<"\nVvedite dliny, visoty, wiriny i ves "<<i+1<<" -go pribora: "<<endl;
cin>>a[i].dlina>>a[i].visota>>a[i].wirina>>a[i].ves;}
};
 
void print_istochnik_pitania(){
strcpy(a[0].napriagenie,"220v");
strcpy(a[0].tok,"0.5A");
strcpy(a[0].chastota,"1400Gz");
cout<<"\nIstochnik pitania (napriagenie, tok, chastota): "<<a[0].napriagenie<<'\t'<<a[0].tok<<'\t'<<a[0].chastota<<endl;};
 
void print_gabariti(){
cout <<"\nGabariti 3 vidov pribora:\n";
int i;
for (i=0; i<3; i++) cout <<a[i].dlina<<' '<<a[i].visota<<' '<<a[i].wirina<<' '<<a[i].ves<<endl;};
 
void print_vse(){
int i;
cout<<name<<endl;
for (i=0; i<3; i++) cout <<'\t'<<a[i].dlina<<'\t'<<a[i].visota<<'\t'<<a[i].wirina<<'\t'<<a[i].ves<<endl;
};
};
 
class tree:public first{
public:
char nazv_velechini[10];
float min_predel;
float max_predel;
float pogrewnost;
 
virtual void info(){
first::info();
cout<<"\nVvedite nazvanie velechini, nijnii predel, verxnii predel, pogrewnost:\n";
cin>>nazv_velechini>>min_predel>>max_predel>>pogrewnost;};
 
void print_izmerenia(){
cout<<"\nIzmerenia:\n"<<nazv_velechini<<'\t'<<min_predel<<'\t'<<max_predel<<'\t'<<pogrewnost<<'\t'<<endl;};
};
 
int main(){
first x;
x.input_name();
x.print_name();
x.info();
x.input_gabariti();
x.print_gabariti();
x.print_istochnik_pitania();
 
x.print_vse();
 
tree y;
y.input_name();
y.print_name();
y.info();
y.print_izmerenia();
y.input_gabariti();
y.print_gabariti();
y.print_istochnik_pitania();
y.print_vse();
 
getch ();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2010, 05:42     конструкторы
Посмотрите здесь:

Конструкторы C++
Конструкторы C++
конструкторы C++
C++ конструкторы
Конструкторы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,898
Завершенные тесты: 1
10.10.2010, 13:18     конструкторы #2
В классе first уже есть 2 конструктора, один из которых (по умолчанию) даже используется. Хотя правильнее было бы их слить в один:
C++
1
first::first(int X=1): x(X) {}
К сожалению, специалистов по чтению мыслей вашего преподавателя найти будет, как мне кажется, не так легко, как хотелось бы.
Icelope
0 / 0 / 0
Регистрация: 18.01.2010
Сообщений: 12
12.10.2010, 21:50  [ТС]     конструкторы #3
А можно ли, к примеру, заменить методы ввода:

C++
1
2
3
void input_name(){
cout <<"\nVvedite nazvanie pribora: "<<endl;
cin>>name;};
и
C++
1
2
3
4
5
6
void input_gabariti(){
int i;
for (i=0; i<3; i++){
cout <<"\nVvedite dliny, visoty, wiriny i ves "<<i+1<<" -go pribora: "<<endl;
cin>>a[i].dlina>>a[i].visota>>a[i].wirina>>a[i].ves;}
};
соответствующими конструкторами???
Подскажите, пожалуйста)
Crudelis
Шаровик затейник
 Аватар для Crudelis
668 / 410 / 13
Регистрация: 06.05.2010
Сообщений: 1,109
12.10.2010, 23:09     конструкторы #4
конструкторы нужны для инициализации переменных при создании их в main, какие будут методы в классе, как их изменять конструктор к ним отношения не имеет. конструктору все равно
Yandex
Объявления
12.10.2010, 23:09     конструкторы
Ответ Создать тему
Опции темы

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