Вопросы по теме 'object-slicing'

Как хранить разные классы в одном векторе?
Итак, у меня есть вектор, полный всех объектов для моей игры; такие вещи, как объект игрока, вражеский объект, стены и т. д. Все объекты в векторе являются дочерними элементами Framework , поэтому я сделал векторный тип Framework , потому что для...
1311 просмотров
schedule 30.03.2022

Может ли std::move вызывать нарезку при переходе к ссылке на l-значение?
См. следующий код: #include <iostream> #include <chrono> class Parent { public: Parent() = default; virtual ~Parent() = default; Parent(const Parent& pr) : i{pr.i} {std::cout << "Parent copy constructor\n";}...
424 просмотров
schedule 12.04.2022

C ++: нарезка объектов и исключения
В интервью меня спросили, почему перехват исключений по значению может быть проблемой, и я ответил, что это может привести к нарезке объектов. И вот что я нахожу в Интернете, например здесь: https://www.viva64.com/en/w/v746/ Но сейчас пытаюсь...
422 просмотров

Нарезка объектов: передать Derived as Base по значению — безопасно или опасно?
Я изучаю, когда/почему нарезка объектов опасна. Я прочитал отличную ссылку о что такое безопасная нарезка VS опасная нарезка . Вот что я могу обобщить (грубо говоря ):- Безопасно , если базовым типом является значение (например, A )....
274 просмотров
schedule 26.05.2022

Списки инициализаторов членов конструктора C++, разделение объектов
у меня два класса class A { public: virtual void doStuff() = 0; }; class B : public A { int x; public: virtual void doStuff() override { x = x*2;} //just example function }; И еще один класс, который модифицирует и использует...
124 просмотров

О каких нежелательных последствиях говорит автор?
Этот пример был взят из книги Брюса Экеля «Мышление на C++», глава 14, раздел «Повышение приведения и конструктор копирования». #include <iostream> using namespace std; class Parent { int i; public: Parent(int ii) : i(ii) {...
117 просмотров
schedule 14.06.2022

Коллекция объектов более чем одного типа
Есть ли какой-нибудь неужасный способ иметь коллекцию объектов более одного типа? Я совершенно счастлив вывести каждый тип из общей базы. Мне нужна разумная семантика, чтобы коллекцию можно было копировать, назначать и так далее. Очевидно, я не...
242 просмотров
schedule 17.07.2022

numpy получить массив 2d, где последнее измерение индексируется в соответствии с массивом 2d
Я читал об индексации numpy, но не нашел того, что искал. У меня есть изображение 288*384, где каждый пиксель может иметь маркировку в [0,15]. Он хранится в массиве 3d (288 384,16) numpy im . С помощью im[:,:,1] я могу, например, получить...
124 просмотров

c++: может ли вектор Base› содержать объекты типа Derived?
Название в значительной степени говорит само за себя. В принципе, законно ли это делать: class Base { //stuff } class Derived: public Base { //more stuff } vector<Base> foo; Derived bar; foo.push_back(bar); Основываясь на...
4232 просмотров
schedule 26.04.2023

конструкторы, вызывающие подкласс
У меня есть (частично реализованная) иерархия классов, где template<typename T> { class data { data ( string s ) {}; // loads from file ... } class image: public data <T> { image ( string s ) {};...
92 просмотров
schedule 14.10.2022

Законно ли использование initializer_list для инициализации объекта производными типами?
Ну может из названия не понятно о чем я собственно спрашиваю. У меня есть класс с конструктором списка инициализаторов std::initializer_list<B> . Допустимо ли инициализировать его списком инициализаторов объектов класса D , где D...
620 просмотров

Фабричный шаблон с абстрактными базовыми классами - возврат по ссылке или по значению? Проблемы с областью действия и нарезкой
У меня есть иерархия типов, похожая на приведенный ниже пример кода, и я пытаюсь создать их экземпляры с помощью шаблона фабрики (или, если быть педантичным, скорее шаблона построителя, поскольку моя фабрика получает входные данные из XML-документа......
551 просмотров

Как правильно добавить shared_pointers в вероятно производные классы в std::vector?
У меня есть в основном эта установка: class B { /* ... */}; class C1 : public B { /* ... */}; class C2 : public B { /* ... */}; class X { std::vector<shared_ptr<B>> m_vec; void addToVector(B* b); } addToVector не может...
67 просмотров

Нарезка объектов: доступ к методам производного класса из объекта базового класса.
Изменить : Проблема заключается в файле GoFish.h , а точнее в конструкторе , где он пытается создать экземпляр объекта player. Компилятор выдает следующее сообщение об ошибке: Нет члена с именем «noOfBooks» в...
79 просмотров
schedule 24.03.2023

Нарезка C-массива, создание вектора C++, сохранение только 2 элементов каждые 3
У меня есть C-массив, подобный этому: int X[]={0, 1, 2, 3, 4, 5, 6, 7, 8}; Мне нужно создать два stl-вектора из этого массива посредством нарезки, возможно, совместного использования максимального объема памяти и создания менее глубоких...
128 просмотров
schedule 15.04.2023

Минимум или максимум ряда данных pandas между двумя строками
У меня есть кадр данных pandas. Предположим, что имена столбцов — «A», «B» и «C». Как я могу рассчитать минимальное и/или максимальное значение данных в столбце «A», включая только строки от m до p? Где m ‹ p и m != 0 и p ‹ количество строк в...
1437 просмотров
schedule 08.03.2023

Виртуальная таблица и нарезка объектов
При нарезке объектов, когда объект производного класса копируется в объект базового класса, копируется ли _vptr производного класса в _vptr базового класса, как и другие члены базового класса? Если нет, то почему? class Base{ public : virtual...
176 просмотров
schedule 09.01.2023

C++ Добавление объектов дочерних классов в вектор родительского класса
У меня есть следующая иерархия классов: Класс Crocodile наследуется от Oviparous, который наследуется от Animal Мне нужно хранить объекты типа Crocodile, Goose, Pelican, Bat, Whale и SeaLion внутри вектора, поэтому: 1- Я создаю глобальный...
150 просмотров

Можно ли реализовать copyable_unique_ptr, на который не влияет нарезка?
Вне зависимости от того, имеет ли смысл копировать unique_ptr или нет*, я пытался реализовать такой класс, просто обернув std::unique_ptr , и столкнулся с трудностями именно там, где берется копия, в случае умного указателя на базу и хранимый...
74 просмотров
schedule 21.01.2024