Preparation for the c++ review
Memory Management
malloc/free
new delete
shallow copy vs deep copy
constructor vs deconstructor
different types of constructor (default, parameterized, copy constructor)
why destructor matters
why need vitual destructor (pure virtual destructor)
reference vs pointers:
(can’t changed, not NULL, need to be initialised)
lvalue vs rvalue, rvalue reference with rvalue reference
(advanced topic, perfecting forward)
nullptr vs NULL (one type is pointer, another type is int and value is zero)
smart pointer in c++ (unique_ptr, shared_ptr, weak_ptr)
why need std::ref
storage class in C/C++:
auto, static, register(keyword:register), external (keyword:extern)
explain details about the automatic object (auto in c++ is different with original one)
iterator and smart pointers (for shared pointer what is overhead for it???)
OOP (object oriented programming)
key concepts about the OOP (abstraction
template defination
difference between class and struct
class access specifiers (public, private, protected)
what is diamond problem and how to solve it
Rule of Five(Write a copy constructor, move constructor, copy assignment operator, and move assignment operator)
when to use virtual function
pure virtual function and the abstract class
types of the inheritences(single, multiple, multilevel, hierachical, hybrid)
virtual table and virtual pointer
friend class and friend function
size of the empty class with the normal function and the virtual function
namespace and it’s using context
c++11 new features
bind
rvalue reference
std::move
lamda expression (anonymous function)
std::function
async
future and promise
packaged_task
others
exceptions (different between throw and throw object)
#ifdef
and #endif
translation unit
key word: volatile
details about the iterator in c++
近期评论