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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
MyBordOf
0 / 0 / 0
Регистрация: 27.04.2013
Сообщений: 75
#1

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

14.05.2014, 12:07. Просмотров 283. Ответов 3
Метки нет (Все метки)

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; 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2014, 12:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перегрузка методов класса Прямоугольник (C++):

Перегрузка методов класса - C++
Проблема заключается в следующем я не получается правильно сделать задание. Задание:&quot;Для класса реализовать набор операций для работы с...

Перегрузка операций класса "Прямоугольник" - C++
Помогите! Я не представляю как сделать операции сравнения, а остальное вроде бы получилось. Необходимо выполнить перегрузку операций...

Напишите реализацию методов, предоставляющих доступ к данным класса. Отобразите в программе работу этих методов - C++
Реализация методов класса. Напишите реализацию методов, предоставляющих доступ к данным класса. Отобразите в программе...

Перегрузка методов - C++
Помогите написать программу. Создать массив объектов, и с помощью методов класса предусмотреть следующие возможности: • вывод...

Как вынести описание методов вложенного класса за пределы класса? - C++
Подскажите, пожалуйста, как мне вынести описание методов вложенного класса за пределы класса?

Вызов методов класса из двойного указателя на экземпляр класса - C++
Добрый день! Как можно вызвать метод класса по двойному указателя на его экземпляр? struct Point { void getPoint(){}; ...

3
zss
Модератор
Эксперт С++
6404 / 5970 / 1945
Регистрация: 18.12.2011
Сообщений: 15,395
Завершенные тесты: 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,'*');
0
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,'*');
красным ошибка
0
jurok_85
241 / 225 / 78
Регистрация: 21.02.2013
Сообщений: 520
Завершенные тесты: 1
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;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2014, 14:15
Привет! Вот еще темы с ответами:

Наследование и перегрузка методов - C++
Здравствуйте. Пытаюсь выполнить упр. 8 из главы 11 книги Р.Лафоре &quot;ООП в С++&quot;, соорудил такое древо классов (картинка в конце поста). Если...

Перегрузка методов и преобразование типов. - C++
Такой вопрос. Есть класс. class MarkMSGProtocol_t : public MarkIO_t { public: MarkMSGProtocol_t(); virtual...

Перегрузка оператора >> для дочернего класса от базового виртуального класса - C++
Доброго вам времени суток! Программирую на С++ не давно, в связи с отсутствием должного времени на поиск ответа в глубинах учебников,...

Перегрузка методов по количеству переменных для преобразования времени - C++
Здравствуйте, только начал учить C++, и получается не все. Уверен, ошибка детская, но все же. Суть программы такая: нужно создать программу...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
14.05.2014, 14:15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru