'Açık-konstruktor' ilə etiketlenen suallar

C ++ prefiksində, konstruktorun açıq sözü kompilyatorun bu konstruktordan gizli dönüşümlər üçün istifadə etməsini maneə törədir.
11
Cavablar

Açar söz nə deməkdir?

C ++-dakı açıq sözü nə deməkdir?
23 Sentyabrda təyin olundu '08 saat 16:58 'da
11
Cavablar

Stringdən 'char *' ə qədər C ++ köhnəlmiş dönüşüm

Mən xüsusi char str ilə bir sinif var [256]; və bunun üçün açıq bir konstruktor var: açıq myClass (const char * func) {strcpy (str, func); } Bunu aşağıdakı kimi çağırıram: myClass obj ("example"); Bunu tərtib edərkən, aşağıdakı xəbərdarlıqları alıram ...
Oct 06 tarixini təyin etdi '09 saat 11:45 'də
4
Cavablar

Çox arqumentləri qəbul edən açıq konstruktor

Bir (faydalı) təsirin bir neçə açıq sübuta malik bir konstruktor varmı? Məsələn: A sinfi {public: açıq A (int b, int c); // açıq-aydın hər hansı bir (faydalı) təsiri varmı? };
24 Avqust '16 'da 2: 29'da
4
Cavablar

Nümunələr siyahısı inisiyalaşdırmaq açıq konstruktorlar tərəfindən icazə verilirsə, nəyə gələ bilər?

C ++ standartında, §13.3.1.7 [over.match.list], aşağıdakılar göstərilir: Kopyalama siyahısının başlanğıcında, konstruktor açıq olduqda, başlatma sıfıra bərabərdir. Buna görə belə bir şey edə bilmərik, məsələn: struct foo {// ...
06 fevral '12 saat 10:49 'da
5
Cavablar

İki və ya daha çox parametrlə (default deyil) default qurucular və qurucular niyə açıq şəkildə icazə verilir?

Mən bir (default olmayan) parametri olan qurucular bu tip parametrdən bir sinif növünə çevrilən gizli çeviricilər kimi çıxış edirlər. Ancaq, hər hansı bir konstruktivə uyğun olaraq açıq şəkildə istifadə edilə bilər ...
17 dekabrda təyin olundu '10 saat 5:17 'də
5
Cavablar

Açıq hərəkət qurucusu?

Açık söz, kopyalama yapıcıları istisna olmaqla, bir arqument ilə çağırılabilen ən bütün qurucular üçün tövsiyə olunur. Kopyala qurucular üçün istifadə etmək qabiliyyəti var (yoxluğu qadağan etmək ...
20 İyul tarixində saat 11: 00-da təyin olundu
3
Cavablar

Bütün C ++ konstruktorlarını açıq şəkildə təcrid etmək üçün bir nöqsan varmı?

Kodu qoruduğunda bir neçə dəfə parametrləri göstərmədən və əvvəllər çox parametrli konstruktordan parametrləri silmədən konstruktorda bir parametr əlavə edərkən açıq sözü əlavə etməyi unutdum. Bunu qarşısını almaq üçün mən istifadə edirəm ...
18 Aprel tarixində təyin olundu '11 'də saat 16:14' da
3
Cavablar

C ++ 11: "= {}" ilə bir sinifdə başlatma müəyyən bir konstruktorla işləmir

C ++ 11-də biz bir sinifdə başlatma işini "bracket-or-equal-initializer" (standartdan bir sözdən) istifadə edə bilərik, məsələn: struct Foo {/ * explicit * / Foo (int) {}}; struct Bar {Foo foo = {42}; }; Ancaq biz əvvəllər şərh etməyəcəyik ...
01 oktyabr təyin etdi '14 saat 11:37 'də
5
Cavablar

Konstruktorda istenmeyen dəyişikliklərin qarşısını almaq

Buraya uyğun olaraq, aydın: Konstruktorları və transformasiya operatorlarını (C ++ 11 ilə başlayan) örtük dönüşümlərə və ya nüsxələrin başlanmasına imkan verməyənləri müəyyənləşdirir. Belə ki, bu iki üsul eynidır? struct Z {// ... ...
19 apreldə təyin olundu '16 saat 17:53 'də
2
Cavablar

Bir açıq konstruktor istifadə edirəmsə, mən açar sözləri, .h və .cpp fayllarına qoymalı mıyım?

Əslində mənim sualım başlıqdakı hər şeydir. Hər halda: bir sinif var və açıq bir konstruktor istifadə edirəm: .h sinif MyClass {public: açıq MyClass (const string s): sorğu (s) {} Şəxsi: string sorğu; } Lazım və ya deyil ...
08 noyabrda təyin olundu. '08 saat 0:03 'da
3
Cavablar

C ++-da açıq və örtük təyinat arasındakı fərq nədir

int dəyər = 5; // bu tip tapşırıqlara açıq təyin int dəyər (5) adlanır; // bu növ tapşırıqlar, əgər varsa, hansılar arasında və hansı hallarda açıq və örtük tapşırıq arasında fərq ayırd ...
17 İyun tarixində saat 2: 18-də təyin olundu
2
Cavablar

Bir surəti inisiyallaşdırarkən başlanğıcın istifadəsi necə olmalıdır?

Yalnız bir seçimdir, yoxsa birinin digərinə ehtiyac olduğu xüsusi hallar varmı? Aşağıdakı başlatma variantları T t (e) demək; // birbaşa başlanğıc T t = e; // surəti başlatma
27 noyabrda təyin olundu. '10 saat 22:59 'da
1
cavab

C ++ 17-də açıq default qurucular

C ++ 17-də, standart kitabxanada olan boş tag növləri artıq açıq və həmçinin default olaraq qeyd olunan default quruculara malikdir. Məsələn, std :: piecewise_construct_t indi struct piecewise_construct_t (açıq şəkildə parça olaraq təyin olunur ...
Mayın 25-də saat 17: 00-da təyin olundu
2
Cavablar

T * dən std :: unique_ptr <T> konstruktorunun dəlili nədir?

Std :: unique_ptr kimi yaddaş sızmalarından qaçınmaq və istisnaların təhlükəsizliyini təmin etmək üçün əlverişli bir yol təqdim edirsə, xam göstəriciləri deyil, onları keçmək məqsədəuyğun olar. Beləliklə, std :: unique_ptr <some_type> ... yazısı ilə bir (üzv) funksiyanı istəyə bilərsiniz.
28 aug. 14: 14-də
1
cavab

N-ary konstruktorları üçün açıqdırmı?

Bu təqdimatda: http://qtconference.kdab.com/sites/default/files/slides/mutz-dd-speed-up-your-qt-5-programs-using-c++11.pdf Müəllif yazır ki, N-ary dizaynerlər C ++ sözündən istifadə etdilər.
15 dekabr təyin olundu. '12 'də 0:29' da