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

Заменить конструкторы на конструктор по умолчанию - C++

Восстановить пароль Регистрация
 
McToNy
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 20
10.12.2012, 20:40     Заменить конструкторы на конструктор по умолчанию #1
Подскажите,пожалуйста, как изменить код программы, чтобы вместо конструктуров был конструктор по умолчанию,а программа работала по прежнему(изменить нужно только в class.h)

Код программы:
class.h

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
class Rectangl5
{
private:
float height;
float width;
static int count;
public:
Rectangl5(float Height, float Width);
Rectangl5(float Side);
Rectangl5(Rectangl5& R);
~Rectangl5();
float Area();
static int Count() { return(count); }
};
 
int Rectangl5::count = 0;
 
class.cpp
 
float Rectangl5::Area()
{
return(height*width);
}
 
 
Rectangl5::Rectangl5(float Height, float Width)
{
height = Height;
width = Width;
char buf[128];
sprintf(buf, "Создан прямоугольник %g x %g", height, width);
ShowMessage(buf);
count++;
}
 
 
Rectangl5::Rectangl5(float Side)
{
height = Side;
width = Side;
char buf[128];
sprintf(buf, "Создан прямоугольник %g x %g", height, width);
ShowMessage(buf);
count++;
}
 
 
Rectangl5::Rectangl5(Rectangl5& R)
{
height = R.height;
width = R.width;
char buf[128];
sprintf(buf, "Создан прямоугольник %g x %g", height, width);
ShowMessage(buf);
count++;
}
 
Rectangl5::~Rectangl5()
{
char buf[128];
sprintf(buf, "Удален прямоугольник %g x %g", height, width);
ShowMessage(buf);
count--;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2012, 20:40     Заменить конструкторы на конструктор по умолчанию
Посмотрите здесь:

C++ Конструкторы по умолчанию.
C++ Конструктор по умолчанию
C++ Конструктор по умолчанию
Конструктор по умолчанию C++
C++ Конструктор по умолчанию
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Buildog
40 / 40 / 2
Регистрация: 29.04.2012
Сообщений: 185
10.12.2012, 21:02     Заменить конструкторы на конструктор по умолчанию #2
Ёмоё... теги для кода, а то читать без подсветки крайне неудобно, а конструктор по умолчанию, это конструктор с пустыми скобками
C++
1
2
3
4
Rectangl5::Rectangl5()
{
//Тело функции, где ты задаешь вручную параметры например float Height, float Width
}
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
10.12.2012, 21:12     Заменить конструкторы на конструктор по умолчанию #3
C++
1
2
3
4
5
6
конструктор копирования кстати должен быть такой:
Rectangl5::Rectangl5(const Rectangl5& R);
 
иначе:
const Rectangl5 rect1(1, 1);
const Rectangl5 rect2(rect1); // упс
McToNy
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 20
10.12.2012, 21:16  [ТС]     Заменить конструкторы на конструктор по умолчанию #4
Buildog,спасибо) а мне подсказали вариант ответа:
C
1
2
Rectangl5(float Side=0);
Rectangl5(float Height=0, float Width=0);
это неверно будет?
DU благодарю за замечание=)
Buildog
40 / 40 / 2
Регистрация: 29.04.2012
Сообщений: 185
10.12.2012, 21:23     Заменить конструкторы на конструктор по умолчанию #5
Ну я бы предпочел написать всё же явно... ну по-моему так удобнее
C++
1
2
3
4
5
6
Rectangl5::Rectangl5()
{
height=0;
weight=0; //Значения ведь сразу в класс заносятся, но сделай по умолчанию прямоугольник допустим 5 на 5
...
}
и в вызове main
C++
1
2
3
4
5
int main()
{
Rectangl5 Rectangle; //Вызывается конструктор по умолчанию для создания прямоугольника
...
}
Добавлено через 38 секунд
Возможно, как ты написал тоже верно будет) Просто существует несколько вариантов записей, и я не совсем уверен
McToNy
0 / 0 / 0
Регистрация: 29.05.2012
Сообщений: 20
10.12.2012, 21:27  [ТС]     Заменить конструкторы на конструктор по умолчанию #6
спасибо)
Yandex
Объявления
10.12.2012, 21:27     Заменить конструкторы на конструктор по умолчанию
Ответ Создать тему
Опции темы

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