Свързани въпроси 'assignment-operator'

Ново поставяне и присвояване на клас с постоянен член
Защо е това недефинирано поведение? struct s { const int id; // <-- const member s(int id): id(id) {} s& operator =(const s& m) { return *new(this) s(m); // <-- undefined behavior? } };...
946 изгледи

Има ли смисъл да се използва идиома за преместване и размяна на преместваем и некопируем клас
Ако имам клас като class Foo{ public: Foo(){...} Foo(Foo && rhs){...} operator=(Foo rhs){ swap(*this, rhs);} void swap(Foo &rhs); private: Foo(const Foo&); // snip: swap code }; void swap(Foo& lhs, Foo&...
2001 изгледи

Как се обработват членовете на масива на C++ във функциите за контрол на копирането?
Това е нещо, което се чудех от дълго време. Вземете следния пример: struct matrix { float data[16]; }; Знам какво правят конструкторът и деструкторът по подразбиране в този конкретен пример (нищо), но какво да кажем за конструктора за...
5583 изгледи

Оператор за присвояване на производен клас наследява основен клас?
Струва ми се, че производният клас не наследява оператор за присвояване на базов клас ако производният клас наследява оператор за присвояване на основен клас, можете ли да обясните следния пример В следния код аз заменям базов клас operator= в...
9396 изгледи
schedule 13.11.2022

Задачи на Java
Уча за изпит и преглеждам примерна програма и съм объркан. Ето кода: public class Problem1 { public static void f(A X) { A Y = X; Y.key = X.key + 1; } public static void f(B X) { B Y = new B(); Y.key = X.key + 2; //Y.key = 12...
298 изгледи

операторът за виртуално присвояване на производния клас не се извиква
Аз съм доста нов в C++ и се опитвам да се справя с виртуалното присвояване. Програмата по-долу се състои от абстрактен базов клас с два члена на данни и производен клас с един. Когато задам абстрактен указател към производен обект, програмата...
663 изгледи
schedule 05.03.2024

Актуализирайте подмножество от data.table въз основа на присъединяване
Имам две таблици с данни, DT1 и DT2: set.seed(1) DT1<-data.table(id1=rep(1:3,2),id2=sample(letters,6), v1=rnorm(6), key="id2") DT1 ## id1 id2 v1 ## 1: 2 e 0.7383247 ## 2: 1 g 1.5952808 ## 3: 2 j 0.3295078 ## 4: 3 n...
6917 изгледи

C++ проверка на типа по време на компилация
всичко. Аз съм доста нов в C++ и пиша малка библиотека (най-вече за моите собствени проекти) в C++. В процеса на проектиране на йерархия на типове се натъкнах на проблема с дефинирането на оператора за присвояване. Възприех основния подход, който...
2419 изгледи