lang:cpp:classes
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
lang:cpp:classes [2021/03/28 17:08] – Ajout d'une implémentation de "clone" root | lang:cpp:classes [2022/07/04 10:05] (Version actuelle) – [Destructeur] : lock_guard->scoped_lock root | ||
---|---|---|---|
Ligne 172: | Ligne 172: | ||
std::mutex io_mutex; | std::mutex io_mutex; | ||
{ | { | ||
- | std::lock_guard< | + | std::scoped_lock< |
std::cout << e1.id << " and " << e2.id << " are waiting for locks" << std::endl; | std::cout << e1.id << " and " << e2.id << " are waiting for locks" << std::endl; | ||
// le mutex est automatiquement libéré lors de l' | // le mutex est automatiquement libéré lors de l' | ||
Ligne 520: | Ligne 520: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | ====vtable==== | ||
+ | |||
+ | Il n' | ||
+ | |||
+ | <code cpp> | ||
+ | #include < | ||
+ | |||
+ | struct S { | ||
+ | int x; | ||
+ | virtual void f() {} | ||
+ | }; | ||
+ | |||
+ | int main() { | ||
+ | S s; | ||
+ | s.x = 5; | ||
+ | std::cout << "size : " << sizeof(S) << " | ||
+ | void*** ptr = (void***)& | ||
+ | std::cout << " | ||
+ | std::cout << "bytes : " << *ptr << " and " << *(ptr + 1) << " | ||
+ | std::cout << " | ||
+ | << " | ||
+ | std:: | ||
+ | return 0; | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | [[http:// | ||
+ | |||
====override / redéfinition==== | ====override / redéfinition==== | ||
===Cas général=== | ===Cas général=== |
lang/cpp/classes.1616944110.txt.gz · Dernière modification : 2021/03/28 17:08 de root