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

Абстрактный класс и std::sort - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ масив структур http://www.cyberforum.ru/cpp-beginners/thread950167.html
Создать масив структур, каждая с которых состоит с селементов: факультет, курс, група, фамилии студентов, оценки, стипендия. Определить: 1) фамилии студентов со степухой и их средний бал. 2)факультет, где на первом курсе наименее двоишников. 3)курс с наибольшим количеством отличников. Помогите сделать програму. Только недавно начал учить С++, но еще не успел усвоить даную тему, а мой препод...
C++ Работа конструкторов в классе и дружественная функция Есть програмка с классом Meal. К ней я так же написал дружественную функцию с вычитанием калорийности объектов от общей калорийности, но расчеты получаются не правильными. Вот сам текст класса: #include <iostream> #include <conio.h> using namespace std; class Meal{ private: double Carrot; double Kap; double Meat; http://www.cyberforum.ru/cpp-beginners/thread950164.html
C++ Матрицы. Найти элементы, меньшие среднего арифметического
Вот задача, мне срочно нужна ваша помощь... С клавиатуры вводится размерность целочисленной матрицы, затем сама матрица. Найти элементы меньшие среднего арифметического. Разрешается при этом использовать только один оператор цикла (кроме цикла ввода матрицы). на выходе выводится меньшее число с индексом. С комментариями пожалуйста, потому что я вообще не изучала этот язык...
указатели и шаблоны C++
Добрый день. Есть вот такой шаблон template< typename T> struct A{ void a(){} }; в одной части программы он возможен или как
C++ Нахождение углов треугольника по трем его сторонам http://www.cyberforum.ru/cpp-beginners/thread950116.html
На данный момент у меня получается вот так.. На форуме есть подобная тема но она на языке паскаль http://www.cyberforum.ru/pascal/thread91176.html #include "stdafx.h" #include "math.h" #include <iostream> using namespace std; int main() { double a,b,c,S,u;
C++ Динамическая память(толи я дурак, то ли правда лыжи не едут) Есть код программы: #include <stdio.h> #include <conio.h> #include <stdlib.h> #include <time.h> const int N=10;//razmer matritsi const int NPOW=N*N; const int RANDMAXIMUM=99;//maksimal'noe znachenie vivodimoe rand() подробнее

Показать сообщение отдельно
Слепой Уфолог
3 / 3 / 0
Регистрация: 04.09.2013
Сообщений: 18
08.09.2013, 13:28     Абстрактный класс и std::sort
Добрый день,

Не компилируется строка:
Код
std::vector<mtl::io::QtFile*> *vec;
...
mtl::misc::Sort(vec); // ЭТА СТРОКА
Компилятор (g++ 4.7.3 Ubuntu) выдает:
error: cannot convert ‘std::vector<mtl::io::QtFile*>*’ to ‘std::vector<mtl::misc::Sortable*>*’ for argument ‘1’ to ‘void mtl::misc::Sort(std::vector<mtl::misc::Sortable*>*)’
Доп инфо:
Абстрактный класс:
Код
namespace mtl		{
namespace misc		{

class Sortable
{
public:
	virtual bool
	sortable_bool() const = 0;
	
	virtual const QString&
	sortable_str() const = 0;
};

} // namespace misc
} // namespace mtl
Его имплементация:
Код
namespace mtl	{
namespace io	{

class QtFile : public mtl::misc::Sortable {..}
} // namespace io
} // namespace mtl
и метод Sort в namespace mtl::misc:
Код
void
Sort(std::vector<mtl::misc::Sortable*> *vec)
{
	std::sort(vec->begin(), vec->end(), mtl::misc::SortItems);
}
Вроде бы все правильно но на строке "mtl::misc::Sort(vec);" компилятор останавливается, кажется он не понимает что mtl::io::QtFile должен сойти как mtl::misc::Sortable, не пойму почему.

Если так то компилится и работает правильно, но по идее должно было работать и без каста:
Код
mtl::misc::Sort((std::vector<mtl::misc::Sortable*>*)vec);
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru