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

Перегрузка методов класса Прямоугольник - C++

Восстановить пароль Регистрация
 
MyBordOf
0 / 0 / 0
Регистрация: 27.04.2013
Сообщений: 75
14.05.2014, 12:07     Перегрузка методов класса Прямоугольник #1
1.Продемонстрировать перегрузку функций-членов класса "Прямоугольник", функция член – "Нарисовать". Различать случаи собственно прямоугольника и квадрата.

Программа рисует квадрат и прямоугольник звездочками. Надо както сделать, чтоб при значении 1 он рисовал "*", а при значении 2 - "+"!!
Помогите пожалуйста реализовать!

Листинг программы.

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
#include <iostream> 
using namespace std; 
 
class rectangle 
{ 
public: 
  rectangle(int width, int height); 
 ~rectangle(){} 
 
  void draw () const; 
  void draw (int w, int h) const;  
private: 
 int its_width; 
 int its_height; 
};  
rectangle::rectangle(int width, int height) 
{ 
 its_width=width; 
 its_height=height;     
}  
void rectangle::draw() const 
{ 
 draw(its_width,its_height); 
}  
void rectangle::draw(int w, int h) const 
{ 
  for(int i=0; i<h; i++) 
 { 
    for (int j=0;j<w;j++) 
   { 
   cout<<"*"; 
   } 
   cout<<"\n"; 
 } 
}  
int main(int argc, char* argv[]) 
{ 
 rectangle rect(30,5); 
 cout<<"draw\n"; 
 rect.draw();   
 cout<<"draw\n"; 
 rect.draw(10,4);   
 return 0; 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,204
Завершенные тесты: 1
14.05.2014, 12:16     Перегрузка методов класса Прямоугольник #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
void rectangle::draw(int w, int h, char sign) const 
{ 
  for(int i=0; i<h; i++) 
 { 
    for (int j=0;j<w;j++) 
         cout<<sign; 
   cout<<"\n"; 
 } 
} 
...
rect.draw(10,4,'+'); 
rect.draw(10,4,'*');
MyBordOf
0 / 0 / 0
Регистрация: 27.04.2013
Сообщений: 75
14.05.2014, 12:24  [ТС]     Перегрузка методов класса Прямоугольник #3
Не работает!

ошибка в этой части
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[COLOR="Red"]void rectangle::draw() const
{
 draw(its_width,its_height);
}[/COLOR]
void rectangle::draw(int w, int h, char sign) const
[COLOR="Red"]{
  for(int i=0; i<h; i++)
 {
    for (int j=0;j<w;j++)
         cout<<sign;
   cout<<"\n";
 }
}[/COLOR]
 
int main(int argc, char* argv[])
{
 rectangle rect(30,5); //прямоугольник
 cout<<"draw\n";
 rect.draw(10,4,'+');
 cout<<"draw\n";
 rect.draw(10,4,'*');
красным ошибка
jurok_85
226 / 209 / 70
Регистрация: 21.02.2013
Сообщений: 494
14.05.2014, 14:15     Перегрузка методов класса Прямоугольник #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
#include <iostream>
using namespace std;
 
class rectangle
{
public:
  rectangle(int width, int height);
 ~rectangle(){}
 
  void draw () const;
  void draw (char) const;
private:
 int its_width;
 int its_height;
};
rectangle::rectangle(int width, int height)
{
 its_width=width;
 its_height=height;
}
void rectangle::draw(char c) const
{
   for(int i=0; i<its_width; i++)
 {
    for (int j=0;j<its_height;j++)
   {
   cout<<c;
   }
   cout<<"\n";
 }
}
void rectangle::draw() const
{
  for(int i=0; i<its_width; i++)
 {
    for (int j=0;j<its_height;j++)
   {
   cout<<"*";
   }
   cout<<"\n";
 }
}
int main(int argc, char* argv[])
{
 rectangle rect(5,5);
 cout<<"draw\n";
 rect.draw();
 cout<<"draw\n";
 rect.draw('+');
 return 0;
}
Yandex
Объявления
14.05.2014, 14:15     Перегрузка методов класса Прямоугольник
Ответ Создать тему
Опции темы

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