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

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

29.07.2022, 21:18. Показов 1626. Ответов 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
Сообщений: 231
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
Сообщений: 231
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
Сообщений: 231
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
Сообщений: 231
31.07.2022, 19:16  [ТС]
спасибо всем за попытку. но я придумала решить проблему с помощь аллокаторов, и уде точно смогу поместить в класс вектор сортировку
0
31.07.2022, 19:30

Не по теме:

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

0
-15 / 0 / 4
Регистрация: 27.10.2015
Сообщений: 231
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
Ответ Создать тему
Новые блоги и статьи
Контроль уникальности строк в табличной части документа
Maks 18.06.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ПланированиеСпецтехники" с табличной частью "НаличиеОборудования", разработанного в КА2. Задача: контроль уникальности строк в. . .
Клиент
Uhbif79 18.06.2026
Здесь простой клиент для работы с сервером.
Сервер
Uhbif79 18.06.2026
Выкладываю простейший сервер.
Дефенестрация
kumehtar 18.06.2026
Узнал интересное слово. Дефенестрация. Это когда ты выбрасываешь кого-либо или что-либо из окна. Возьму на вооружение)))
Дихотомия добра и зла
kumehtar 18.06.2026
Как Дзен-буддисты говорят о добре и зле: не нужно воевать против зла, нужно воевать против невежества. Тогда добро станет ествественным, и поэтому вечным. Но дело в том, что невежество всё время. . .
Своя Интернет-Компания
iceja 18.06.2026
Я программист с экономическим образованием, пишу свой проект, это SaaS для бизнесов. Мне нужен co-founder с высшим экономическим образованием, и/ или инвестор. Сейчас проект в интенсивной разработке,. . .
24 Мат модель здравосохранения: функциональные требования к строительству пищеблока
anaschu 18.06.2026
СРесурсами1: финансовый SD-контур, калькулятор функциональных требований пищеблока Сегодня разделили затраты в агенте Экономика по образцу модели НАСОСЫ, добавили расчёт ROI и построили первый. . .
23. что сделано за последнее время.
anaschu 17.06.2026
• Эталон: Клиника НИИ питания РАМН, Москва — централизованный пищеблок, 225 коек, 180 пациентов • Git: репозиторий med2, ветка абсентеизм. Рабочий файл: СРесурсами1_v4. alp • Смежный проект:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru