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

передача параметра в функцию - C++

Восстановить пароль Регистрация
 
yol
10 / 10 / 0
Регистрация: 13.10.2012
Сообщений: 155
26.04.2013, 05:36     передача параметра в функцию #1
Столкнулся с муторной проблемой передачи параметра в функцию.
Суть задания такая, что нужно изобрести велосипед написать собственный контейнер, в который будут помещаться фигуры. Вот место где выходит эта самая ошибка: "аргумент типа shapes* несовместим с параметром типа shapes*", делал вроде все правильно (даже попробовал вместо shapes -- int и к удивлению все получилось).

C++
1
2
3
shapes* p=0;
p=new square;
obj.enqueue(p); //ТУТ ВЫЛАЗИТ ОШИБКА
Та самая процедура:
C++
1
2
3
4
5
6
7
8
9
void queue::enqueue(shapes* s)  //добавить элемент (в конец списка)
{
    link* top=0;
    last->cur=s;
    top=last->next; //перехват верхушки очереди
    last->next=new link; //указатель на следующий объект
    last=last->next;    //переходим к месту для следующего (в будущем) объекта
    last->next=top; //сохраняем указатель на начало очереди
};
Класс квадрат (square), является производным от фигуры (shapes).
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
 Аватар для vxg
2669 / 1680 / 158
Регистрация: 13.01.2012
Сообщений: 6,281
26.04.2013, 09:55     передача параметра в функцию #2
и где ошибка?
yol
10 / 10 / 0
Регистрация: 13.10.2012
Сообщений: 155
26.04.2013, 10:12  [ТС]     передача параметра в функцию #3
Цитата Сообщение от vxg Посмотреть сообщение
и где ошибка?
Ну вот, здесь:
C++
1
obj.enqueue(p);
VS10 выдает ошибку: аргумент типа shapes* несовместим с параметром типа shapes*
vxg
Модератор
 Аватар для vxg
2669 / 1680 / 158
Регистрация: 13.01.2012
Сообщений: 6,281
26.04.2013, 10:56     передача параметра в функцию #4
если квадрат производный от фигуры и, как мы видим по тексту указатель на квадрат отлично приводится к указателю на фигуру, то вызов функции принимающей в качестве аргумента указатель на фигуру должен пройти успешно даже в случае если мы передадим ей указатель на квадрат. здесь же мы передаем ей указатель на фигуру, то есть то что она ждет - проблемы где-то в другом ровном месте.
yol
10 / 10 / 0
Регистрация: 13.10.2012
Сообщений: 155
26.04.2013, 12:02  [ТС]     передача параметра в функцию #5
Цитата Сообщение от vxg Посмотреть сообщение
если квадрат производный от фигуры и, как мы видим по тексту указатель на квадрат отлично приводится к указателю на фигуру, то вызов функции принимающей в качестве аргумента указатель на фигуру должен пройти успешно даже в случае если мы передадим ей указатель на квадрат. здесь же мы передаем ей указатель на фигуру, то есть то что она ждет - проблемы где-то в другом ровном месте.
я все внимательно просмотрел, но к сожалению не нахожу "неровных" мест.
Сам по себе код нормальный, обработка фигур осуществлялась без проблем, но как только я модифицировал код, чтобы использовать контейнер, вот тут я и застрял...
может у кого есть, хоть какие-нибудь, идеи?
vxg
Модератор
 Аватар для vxg
2669 / 1680 / 158
Регистрация: 13.01.2012
Сообщений: 6,281
26.04.2013, 12:05     передача параметра в функцию #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class shapes
{
public:
  int x;
};
 
class square:
  public shapes
{
public:
  int y;
};
 
class queue
{
public:
    void enqueue(shapes* s) {}
};
 
queue obj;
shapes* p=0;
p=new square;
obj.enqueue(p); //ошибок нет, где она у вас?
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
26.04.2013, 12:09     передача параметра в функцию #7
yol, покажите определение класса queue
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2013, 12:10     передача параметра в функцию
Еще ссылки по теме:

C++ Передача параметра в функцию
Передача массива в функцию в качестве параметра C++
C++ Передача массива в функцию, как параметра

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

Или воспользуйтесь поиском по форуму:
yol
10 / 10 / 0
Регистрация: 13.10.2012
Сообщений: 155
26.04.2013, 12:10  [ТС]     передача параметра в функцию #8
всё! я разобрался, всем спасибо за помощь
Yandex
Объявления
26.04.2013, 12:10     передача параметра в функцию
Ответ Создать тему
Опции темы

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