Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
10 / 10 / 0
Регистрация: 13.10.2012
Сообщений: 155
1

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

26.04.2013, 05:36. Просмотров 445. Ответов 7
Метки нет (Все метки)

Столкнулся с муторной проблемой передачи параметра в функцию.
Суть задания такая, что нужно изобрести велосипед написать собственный контейнер, в который будут помещаться фигуры. Вот место где выходит эта самая ошибка: "аргумент типа 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).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2013, 05:36
Ответы с готовыми решениями:

Передача параметра в функцию
Проблема заключается в следующем. Есть функция, вот её прототип. void attachInterrupt(uint8_t...

Передача параметра в функцию класса
Здравствуйте. Столкнулся с проблемой. Почему переменная "x" не становится равна 25? #include...

Передача параметра, выделенного в куче, в функцию
Доброго времени суток. Возник такой вопрос. Пусть имеется некоторый класс, под объект которого...

Передача массива в функцию, как параметра
Создать массив размерностьюN(описать константу и задать размер по умолчанию равный 10)....

7
Модератор
3309 / 2099 / 334
Регистрация: 13.01.2012
Сообщений: 8,160
26.04.2013, 09:55 2
и где ошибка?
0
10 / 10 / 0
Регистрация: 13.10.2012
Сообщений: 155
26.04.2013, 10:12  [ТС] 3
Цитата Сообщение от vxg Посмотреть сообщение
и где ошибка?
Ну вот, здесь:
C++
1
obj.enqueue(p);
VS10 выдает ошибку: аргумент типа shapes* несовместим с параметром типа shapes*
0
Модератор
3309 / 2099 / 334
Регистрация: 13.01.2012
Сообщений: 8,160
26.04.2013, 10:56 4
если квадрат производный от фигуры и, как мы видим по тексту указатель на квадрат отлично приводится к указателю на фигуру, то вызов функции принимающей в качестве аргумента указатель на фигуру должен пройти успешно даже в случае если мы передадим ей указатель на квадрат. здесь же мы передаем ей указатель на фигуру, то есть то что она ждет - проблемы где-то в другом ровном месте.
0
10 / 10 / 0
Регистрация: 13.10.2012
Сообщений: 155
26.04.2013, 12:02  [ТС] 5
Цитата Сообщение от vxg Посмотреть сообщение
если квадрат производный от фигуры и, как мы видим по тексту указатель на квадрат отлично приводится к указателю на фигуру, то вызов функции принимающей в качестве аргумента указатель на фигуру должен пройти успешно даже в случае если мы передадим ей указатель на квадрат. здесь же мы передаем ей указатель на фигуру, то есть то что она ждет - проблемы где-то в другом ровном месте.
я все внимательно просмотрел, но к сожалению не нахожу "неровных" мест.
Сам по себе код нормальный, обработка фигур осуществлялась без проблем, но как только я модифицировал код, чтобы использовать контейнер, вот тут я и застрял...
может у кого есть, хоть какие-нибудь, идеи?
0
Модератор
3309 / 2099 / 334
Регистрация: 13.01.2012
Сообщений: 8,160
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); //ошибок нет, где она у вас?
0
:)
Эксперт С++
4763 / 3257 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
26.04.2013, 12:09 7
yol, покажите определение класса queue
0
10 / 10 / 0
Регистрация: 13.10.2012
Сообщений: 155
26.04.2013, 12:10  [ТС] 8
всё! я разобрался, всем спасибо за помощь
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2013, 12:10

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Передача файла в функцию в качестве параметра
Имеется такой код, который, по идее, должен создавать файл с записями и кое-как их потом...

Передача параметра по указателю в виртуальную функцию
Добрый вечер и с наступающим всех Новым Годом! условие задачи такое: Мышь (абстрактный) Вход:...

Передача массива в функцию в качестве параметра
Всем привет! Файл с реализацией: int Init_can::Send(int* msgdata) { //Send canmsg_t tx;...

Передача потока как параметра в функцию
Дорогие форумчане! Повторяю пример из книжки, пока остановился из-за ошибки. //Программа...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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