Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
-15 / 0 / 4
Регистрация: 27.10.2015
Сообщений: 230

C2664 "obj_figur &vector_figurs<obj_figur>::push (obj_figure &)

29.07.2022, 21:18. Показов 1525. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
создаю вектор для хранения фигур и структуру sequence_points ( Point3d) . .в данный момент реализовала только класс эллипс в main создаю пару экземпляров эллипса. Создаю экземпляр вектора в мэйн и задаю тип Point3d. Хочу передать в вектор экземпляры эллипсов, но сталкиваюсь с ошибкой в компиляции, которую указала в заголовке вопроса.

как исправить чтобы скомпилилось?
надеюсь на вашу благосклонность к моей ошибке и малому опыту

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main(int argc, char** argv)
{
 
    Ellipse3d obj1(11, 10);
    obj1.init_points(50,50);
    //obj1.print_points();
    
 
    Ellipse3d obj2(10, 5);
    obj2.init_points(50, 10);
    //obj2.print_points();
 
    vector_figurs<Point3d>vec1;
    vec1.push(obj1);
 
    system("pause");
    return 0;
}
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
template <typename obj_figur>
class vector_figurs
{
private:
 
    std::vector<obj_figur> vec_figurs;
    obj_figur *ptr_figure;
    int size_of_vector;
    int iterator;
    int max_size = 20;
public:
//--------------------------------------------------------------
    vector_figurs(int size = 5)
    {
        this->vec_figurs.resize(size);
    }
//--------------------------------------------------------------
    obj_figur& resize(int size)
    {
        this->vec_figurs.resize(size);  
    }
    //--------------------------------------------------------------
    obj_figur& push(obj_figur& value)
    {
        this->vec_figurs.push_back(value);
    }
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
struct Point {
        double x;
        double y;
    };
 
enum Type
{
    circle = 1,
    triangle = 2,
    ellipse = 3,
    square = 4,
    rectangle = 5
};
 
struct sequence_points 
{
    std::vector<Point>points;
    Type type_of_figure;
};

C++
1
typedef sequence_points Point3d;

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Ellipse3d
{
private:
    double radiusY;
    double radiusX;
    
    Point3d sequ_pointsN;
    Point pointN;
    
public:
    Ellipse3d()
    {
        radiusX = 1;
        radiusY = 1;
    };
 
....
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.07.2022, 21:18
Ответы с готовыми решениями:

Error C2664: std::vector<_Ty>::push: невозможно преобразовать параметр 1 из 'double' в 'const std::string &'
#include &lt;iostream&gt; #include &lt;stack&gt; #include &lt;sstream&gt; #include &lt;string&gt; using namespace std; int main() { string...

Ошибка: multiple definition of `void std::swap<A>(A&amp;, A&amp;)
Хочу специализировать swap для своего класса. Получаю ошибку. Вот код:#ifndef A_H #define A_H #include &lt;string&gt; class A ...

Язык C, напечатать таблицу истинности логической функции (A & B & C), где & - знаки логический операций И, НЕ
напечатать таблицу истинности логической функции (A &amp; B &amp; C), где &amp; - знаки логический операций И, НЕ

30
-15 / 0 / 4
Регистрация: 27.10.2015
Сообщений: 230
31.07.2022, 14:06  [ТС]
Студворк — интернет-сервис помощи студентам
Мне наверно не стоит в visual studio собирать проект, потому что дофига сообщений

C2664 "void std::vector<std::unique_ptr<obj_figur,st d::default_delete<_Ty>>,std::allocator<s td::unique_ptr<_Ty,std::default_delete<_ Ty>>>>:ush_back(std::unique_ptr<_Ty,st d::default_delete<_Ty>> &&)": невозможно преобразовать аргумент 1 из "std::unique_ptr<fgr,std::default_delete <_Ty>>" в "const _Ty &" 3d_cad


C++
1
2
3
4
5
template <typename fgr>
    void push(fgr const& obj)
    {
        this->vec_figurs.push_back(std::make_unique<fgr>(obj));
    }
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
31.07.2022, 14:07
Цитата Сообщение от NelLy0892 Посмотреть сообщение
template <typename fgr>
    void push(fgr const& obj)
кстати это функция статически полиморфная. выходит ты мало чего понимаешь в полиморфизме в целом, но пытаешься использовать как статический так и динамический полиморфизм, может начать с теории а уже потом к практической части переходить?
0
-15 / 0 / 4
Регистрация: 27.10.2015
Сообщений: 230
31.07.2022, 15:32  [ТС]
а в теории видела только примеры попроще

Добавлено через 22 минуты
а я поняла, тут приколистов ответы. кодеров тут нет
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
31.07.2022, 15:43
Цитата Сообщение от NelLy0892 Посмотреть сообщение
а в теории видела только примеры попроще
А делать попроще не пробовали ?
У вас в задаче нет никаких ограничений, ну вообще никаких.
Не вижу я там вектор из двокоординатных Точек.
Не вижу никакого супер-пупер самописного вектора в котором хранятся указателя на полиморфные объекты.
Что мешает на коленке собрать из палок и веревок шалаш, сдать его, получить профит и уйти в закат ?

Опишите попунктно, что ДОЛЖНО присутствовать в вашем решении.
Кроме явного
Цитата Сообщение от NelLy0892 Посмотреть сообщение
Поддержка нескольких типов 3D геометрических кривых – окружностей, эллипсов и 3D спиралей.
NelLy0892, ?

Добавлено через 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
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
52
53
54
55
56
#include <iostream>
#include <vector>
#include <ctime>
using namespace std;
 
// interface
struct Point{
    int x{},y{},z{};
};
struct Figure{
    virtual string echo()=0;
    virtual ~Figure()=default;
};
struct Ellipse : public Figure{
    virtual string echo(){
        return "Ellipse";
    };
};
// struct Circle : Ellipse{}; // как вариант
struct Circle : Figure{
    virtual string echo(){
        return "Circle";
    };
}; 
struct Spiral : Figure{
    virtual string echo(){
        return "Spiral";
    };
};
static const size_t FTYPESC = 3;
int main()
{
    srand(time(0));
    vector<Figure*> vec_f;
    int cnt = 5;
    while(cnt--){
        switch (rand()%FTYPESC){
            case 0 :
                    vec_f.push_back(new Circle);
                    break;
            case 1 :
                    vec_f.push_back(new Spiral);
                    break;
            case 2 :
                    vec_f.push_back(new Ellipse);
                    break;
            default : break;
        }
    }
    for (auto f : vec_f)
        cout << "I am - " << f->echo() << endl;
        
    for (auto f : vec_f)
        delete f;
    return 0;
}

NelLy0892, самое простое, если этого не достаточно, опишите почему.
0
31.07.2022, 15:44

Не по теме:

Цитата Сообщение от NelLy0892 Посмотреть сообщение
а я поняла, тут приколистов ответы. кодеров тут нет
Ну и чего вы этим добились?
Теперь еще меньше людей захочет вам помогать.
Я уж молчу про то, что никаких "приколов" в этой теме не было. Если у вас лыжи не едут, то не надо всех вокруг в этом обвинять.
От темы отписываюсь, всего хорошего.

0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
31.07.2022, 15:46
Все, добавляйте методы, общие выносите в интерфейс.
Цитата Сообщение от NelLy0892 Посмотреть сообщение
Каждая кривая должна иметь возможность возвращать 3D-точку и первую производную (3D-вектор) для каждого параметра t вдоль кривой.
Этот пункт вам нужно сделать самостоятельно.
И этот "вектор" для всех фигур будет идентичен по типу. Не нужно его выдумывать.
0
-15 / 0 / 4
Регистрация: 27.10.2015
Сообщений: 230
31.07.2022, 16:16  [ТС]
так этот пункт уже реализован, а класс вектор я делала чтоб там еще и сортировку реализовать. нужно отсортировать по радиусам
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
31.07.2022, 17:30
Цитата Сообщение от NelLy0892 Посмотреть сообщение
нужно отсортировать по радиусам
В елипса два радиуса ? Или второй по другому называется ?

В любом случае, сортировка тривиальна, примерно (написано от руки)
C++
1
2
3
4
5
auto sort_by_radious = [](Figure * a, Figure* b){
   return a->getRadius() < b->getRadius();
};;
std::sort(vec_f.begin(), vec_f.end(), sort_by_radious );
// vec_f вектор с фигурами
0
-15 / 0 / 4
Регистрация: 27.10.2015
Сообщений: 230
31.07.2022, 19:16  [ТС]
спасибо всем за попытку. но я придумала решить проблему с помощь аллокаторов, и уде точно смогу поместить в класс вектор сортировку
0
31.07.2022, 19:30

Не по теме:

Цитата Сообщение от NelLy0892 Посмотреть сообщение
я придумала решить проблему с помощь аллокаторов
Хорошо, что не с помощью трепанации...

0
-15 / 0 / 4
Регистрация: 27.10.2015
Сообщений: 230
31.07.2022, 20:40  [ТС]
заработало! через аллокаторы реально получилось!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
31.07.2022, 20:40
Помогаю со студенческими работами здесь

Почему friend ostrem& operator <<(ostream& outs, const Rational&); - invalid function declaration?
Пытаюсь скомпилировать программу пишет friend ostrem&amp; operator &lt;&lt;(ostream&amp; outs, const Rational&amp;); - invalid function declaration. ...

В заштрихованную фигуру бросают точки с координатами x и y. Получить координаты первой точки не попавшей в эту область (фигура x*x+y*y<25&&x*x+y*y>=9&
В заштрихованную фигуру бросают точки с координатами x и y. Получить координаты первой точки не попавшей в эту область (фигура...

ostream &operator<< (ostream &output, const Array &obj) - что означает эта строка?
void Array::getArray() // вывод массива { for (int ix = 0; ix &lt; size; ix++) cout &lt;&lt; setw(5) &lt;&lt; ptr; // вывод элементов...

Порядок вычисления: операторы «|» и «||», «&» и «&&»
В Java булевые операторы «|» и «||», и «&amp;» и «&amp;&amp;» отличаются друг от друга порядком вычеслений, а в C++ так же как и в Java или...

Friend ostream& operator<<(ostream& stream, CArr& obj);
CArr.h #pragma once class CArr{ int* arr = nullptr; int size = 10; void swap(int *a, int *b); void swap(int &amp;a, int &amp;b); ...


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

Или воспользуйтесь поиском по форуму:
31
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru