Co oznacza kopiowanie obiektu ? Co to jest konstruktor kopii i operator przypisania kopii ? Kiedy sam muszę je zadeklarować? Jak mogę zapobiec kopiowaniu moich
Co oznacza kopiowanie obiektu ? Co to jest konstruktor kopii i operator przypisania kopii ? Kiedy sam muszę je zadeklarować? Jak mogę zapobiec kopiowaniu moich
Czym jest ten idiom i kiedy należy go używać? Jakie problemy rozwiązuje? Czy idiom zmienia się, gdy używany jest C ++ 11? Chociaż w wielu miejscach wspomniano o tym, nie mieliśmy żadnego pojedynczego pytania i odpowiedzi „co to jest”, więc oto jest. Oto częściowa lista miejsc, w których wcześniej...
W Internecie można znaleźć: Wyższy rodzaj == typ konstruktora? class AClass[T]{...} // For example, class List[T] Niektórzy twierdzą, że jest to typ bardziej uporządkowany, ponieważ streszcza typy, które byłyby zgodne z definicją. Wyższe typy pokrewne to typy, które pobierają inne typy i...
Chcę mieć klasę z prywatnym statycznym składnikiem danych (wektorem zawierającym wszystkie znaki az). W Javie lub C # mogę po prostu stworzyć „statyczny konstruktor”, który będzie działał przed utworzeniem jakichkolwiek instancji klasy, i ustawiam statyczne składowe danych klasy. Jest uruchamiany...
Mam klasę : class SymbolIndexer { protected: SymbolIndexer ( ) { } public: static inline SymbolIndexer & GetUniqueInstance ( ) { static SymbolIndexer uniqueinstance_ ; return uniqueinstance_ ; } }; Jak mam go zmodyfikować, aby wyłączyć kod, taki jak: SymbolIndexer symbol_indexer_ =...
Pierwotnie opublikowałem to jako pytanie tylko o destruktory, ale teraz dodaję do rozważenia domyślnego konstruktora. Oto oryginalne pytanie: Jeśli chcę dać mojej klasie destruktor, który jest wirtualny, ale poza tym jest taki sam, jak wygenerowałby kompilator, mogę użyć =default: class Widget...
W C #, C ++ i Javie, kiedy tworzysz konstruktor pobierający parametry, domyślny bez parametrów znika. Zawsze akceptowałem ten fakt, ale teraz zacząłem się zastanawiać, dlaczego. Jaki jest powód tego zachowania? Czy to tylko „środek bezpieczeństwa / domysł” mówiący „Jeśli stworzyłeś własnego...
Mam klasę z rozszerzeniem private char str[256]; i do tego mam jawnego konstruktora: explicit myClass(const char *func) { strcpy(str,func); } Nazywam to tak: myClass obj("example"); Kiedy to kompiluję, otrzymuję następujące ostrzeżenie: przestarzała konwersja ze stałej łańcuchowej na...
Zgodnie z wymaganiami JPA @Entityklasy powinny mieć domyślny konstruktor (bez argumentów) do tworzenia instancji obiektów podczas pobierania ich z bazy danych. W Kotlinie właściwości są bardzo wygodne do zadeklarowania w głównym konstruktorze, jak w poniższym przykładzie: class Person(val name:...
Próbowałem: class Foo(bar: Int) vs: class Foo(private val bar: Int) i wydaje się, że zachowują się tak samo, chociaż nie mogłem znaleźć nigdzie stwierdzenia, które (bar: Int)rozszerza się do, (private val bar: Int)więc moje pytanie brzmi: czy są one identyczne / podobne? Na marginesie,...
Chcę odświeżyć pamięć w warunkach, w których kompilator zazwyczaj automatycznie generuje domyślny konstruktor, konstruktor kopiujący i operator przypisania. Przypominam sobie, że były pewne zasady, ale nie pamiętam, a także nie mogę znaleźć renomowanego źródła w Internecie. Czy ktoś może...
Czy w przypadku C ++ 11 std::arraymam gwarancję, że składnia std::array<T, N> x;będzie domyślnie inicjowała wszystkie elementy tablicy? EDYCJA : jeśli nie, czy istnieje składnia, która będzie działać na wszystkich tablicach (w tym tablicach o rozmiarze zerowym), aby zainicjować wszystkie...
Weź następującą klasę jako przykład: class Sometype { int someValue; public Sometype(int someValue) { this.someValue = someValue; } } Następnie chcę utworzyć instancję tego typu za pomocą odbicia: Type t = typeof(Sometype); object o = Activator.CreateInstance(t); Zwykle to zadziała,...
Powiedzmy, że mam typ i chcę ustawić jego domyślny konstruktor jako prywatny. Piszę co następuje: class C { C() = default; }; int main() { C c; // error: C::C() is private within this context (g++) // error: calling a private constructor of class 'C' (clang++) // error C2248: 'C::C' cannot...
Czy tworzenie konstruktora z wieloma argumentami explicitma jakiś (użyteczny) efekt? Przykład: class A { public: explicit A( int b, int c ); // does explicit have any (useful) effect? };
Wiem, że kompilator C ++ tworzy konstruktor kopiujący dla klasy. W takim przypadku musimy napisać konstruktor kopiujący zdefiniowany przez użytkownika? Czy możesz podać kilka przykładów?
Ponieważ konstruktor kopiujący MyClass(const MyClass&); i przeciążenie operatora = MyClass& operator = (const MyClass&); mają prawie taki sam kod, ten sam parametr i różnią się tylko zwrotem, czy jest możliwe, aby obie miały wspólną funkcję?
Z założenia std::mutexnie można go przenosić ani kopiować. Oznacza to, że klasa Azawierająca muteks nie otrzyma domyślnego konstruktora przenoszenia. Jak uczynić ten typ Aruchomym w sposób bezpieczny dla wątków?
namespace MyNameSpace { static class MyClass { static MyClass() { //Authentication process.. User needs to enter password } public static void MyMethod() { //Depends on successful completion of constructor } } class Program { static void Main(string[] args) {
Mam taką klasę: struct event_counts { uint64_t counts[MAX_COUNTERS]; event_counts() : counts{} {} // more stuff }; Zwykle chcę domyślnie (zero) zainicjować countstablicę, jak pokazano. Jednak w wybranych lokalizacjach zidentyfikowanych przez profilowanie chciałbym powstrzymać...