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

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

Восстановить пароль Регистрация
 
Huligan799
-72 / 1 / 0
Регистрация: 23.04.2010
Сообщений: 149
06.04.2013, 22:15     Конструкторы #1
Пытаюсь разработайте класс представления окна на экране компьютера. В состав должны войти следующие конструкторы:
-конструктор по умолчанию;
-конструктор с параметрами;
-копирующий конструктор.
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
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
class my
{int x1,x2,y1,y2,col;
public:
my(int _x1=1, int _y1=1, int _x2=1, int _y2=1, int _col=1);
my();
my(my & ob);
~my();
int get () {window(x1,y1,x2,y2); textbackground(col); clrscr(); return(col);}
};
my::my(int _x1=1, int _y1=1, int _x2=1, int _y2=1, int _col=1)
{cout<<"\nEto konstructor po umolchaniyu!"; }
my::my(int _x1, int _y1, int _x2, int _y2, int _col)
{cout<<"\nEto konstructor s parametrami!"; x1=_x1; y1=_y1; x2=_x2; y2=_y2; col=_col;}
my::(my & ob)
{cout<<"\nEto konstructor kopirovaniya!"; x1=ob.x1; y1=ob.y1; x2=ob.x2; y2=ob.y2; col=ob.col;}
my::~my(){cout<<"\nEto destructor;";}
 
void main()
{ textbackground(0); clrscr();
my ob;
ob.get();
}
но что то не получается разобраться с конструкторами
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2013, 22:15     Конструкторы
Посмотрите здесь:

Конструкторы C++
конструкторы C++
C++ конструкторы
C++ конструкторы
Конструкторы C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
06.04.2013, 22:25     Конструкторы #2
Конструктор копирования принимает const-ссылку, потому что копируемый объект не изменяется. Если в конструкторе для всех параметров указаны значения по умолчанию, то он может вызываться без параметров, то есть будет конструктором по умолчанию, поэтому в приведённом примере отдельный конструктор без параметров конфликтует с основным. Значения параметров по умолчанию задаются только в объявлении функции, повторять их в определении не следует.
Nick Alte
Эксперт С++
1590 / 982 / 115
Регистрация: 27.09.2009
Сообщений: 1,897
Завершенные тесты: 1
06.04.2013, 22:45     Конструкторы #3
Цитата Сообщение от Jupiter Посмотреть сообщение
и вовсе необязательно const
Теоретически необязательно, но с практической точки зрения это буквоедство едва ли поможет ТС. Потому что ситуаций, когда нужно сделать конструктор копирования, изменяющий оригинал и при этом неспособный во многих случаях выполнять работу (например, при передаче объекта в функцию по значению) крайне мало. Мне, например, не встречались ни разу.
Huligan799
-72 / 1 / 0
Регистрация: 23.04.2010
Сообщений: 149
07.04.2013, 15:52  [ТС]     Конструкторы #4
Цитата Сообщение от Nick Alte Посмотреть сообщение
Конструктор копирования принимает const-ссылку, потому что копируемый объект не изменяется. Если в конструкторе для всех параметров указаны значения по умолчанию, то он может вызываться без параметров, то есть будет конструктором по умолчанию, поэтому в приведённом примере отдельный конструктор без параметров конфликтует с основным. Значения параметров по умолчанию задаются только в объявлении функции, повторять их в определении не следует.
не догнал( На примере исправить сможешь?
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
07.04.2013, 16:16     Конструкторы #5
Цитата Сообщение от Huligan799 Посмотреть сообщение
не догнал( На примере исправить сможешь?
Если будет вызываться my(), не понятно, это конструктор без параметров должен быть или конструктор, у которого все параметры заданы по умолчанию. Строки 7,8.
Huligan799
-72 / 1 / 0
Регистрация: 23.04.2010
Сообщений: 149
10.04.2013, 19:45  [ТС]     Конструкторы #6
Цитата Сообщение от Tulosba Посмотреть сообщение
Если будет вызываться my(), не понятно, это конструктор без параметров должен быть или конструктор, у которого все параметры заданы по умолчанию. Строки 7,8.
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
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
class my
{int x1,x2,y1,y2,col;
public:
my(int _x1=1, int _y1=1, int _x2=1, int _y2=1, int _col=1)
{x1=_x1; y1=_y1; x2=_x2; y2=_y2; col=_col; cout<<"\nEto konstructor po umolchaniyu!"; }
my1(int _x1, int _y1, int _x2, int _y2, int _col);
my2(my & ob);
~my();
int get () {window(x1,y1,x2,y2); textbackground(col); clrscr(); return(col);}
};
my::my1(int _x1, int _y1, int _x2, int _y2, int _col)
{x1=_x1; y1=_y1; x2=_x2; y2=_y2; col=_col; cout<<"\nEto konstructor s parametrami!"; }
my2::(const my & ob)
{cout<<"\nEto konstructor kopirovaniya!"; x1=ob.x1; y1=ob.y1; x2=ob.x2; y2=ob.y2; col=ob.col;}
my::~my(){cout<<"\nEto destructor;";}
 
void main()
{ textbackground(0); clrscr();
my ob;
ob.get();
}
а теперь что она хочет?
Миниатюры
Конструкторы  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2013, 19:54     Конструкторы
Еще ссылки по теме:

C++ Конструкторы
C++ Конструкторы C++
C++ Конструкторы С++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
stima
429 / 284 / 16
Регистрация: 22.03.2011
Сообщений: 923
Завершенные тесты: 1
10.04.2013, 19:54     Конструкторы #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Window
{
  public:
    Window();
    Window(int height, int width)
      : _height(height), _width(width) {}
    Window(const Window& other)
      : _height(other._height), _width(other._width) {}
 
    int height() const { return _height; }
    void set_height(int height)  { _height = height; }
 
    int width() const { return _width; }
    void set_width(int width)  { _width = width; }
 
  private:
    int _height;
    int _width;
};
Если это задание то это все что от вас требовалось.
Если это разработка своего окна или врапа системного, то Вам стоит подучить с++ поначалу.
Yandex
Объявления
10.04.2013, 19:54     Конструкторы
Ответ Создать тему
Опции темы

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