????????????
???????? Java ?????? C++ ???????????????????????????????????????????C++ ?о??????????????????????????????????????????????????????????
????Object *myObject = new Object;
??????????????
????Object myObject;
????????????????????????? testFunc()????????????????
????myObject.testFunc();
?????????д????????
????myObject->testFunc();
??????????????????д???????????????????????????????????棬???д?????????????Ч???????????????????????
???????????? Joseph Mansfield
????????????????????????????????????????????????????????????????? C++ ???????
?????????????????????????????????????????????????ú?????????????? new ??????????????????????????????
????????μ??????????????????????????????????? ???????????????????????????????????????new???????????????????????
???????????
????????????У????г????????????????????????????????????????? Object myObject ??????????????????????????????????????????automatic storage?????????ζ???????????????????????????????????????? new Object() ????????????????????????????????????ζ?????????? detete ?????????????????????????????????????????????仰??????п???????????????????????
?????????????????????????????????????
??????????????????????????洢?????????????У?????????????д洢?????????????????????????/????????????????????????????????????
??????????????????????棬????????????????????????????????????????????????????????£??????治??????????????????????????? C++ ?????????????????????????????????????????ò?????????????
????????????????????????????y???????????????????smart pointer??????????RAII??????????У????????? container?????????????????????????????壨ownership???????????????std::unique_ptr ?? std::shared_ptr ????????????????????????????????????????????棨??μ? Rule of Zero????
???????
?????????????????????????????raw pointer?????÷??????????????????????????????????????????????????????????????????????????ò????????????
????1. ??????????壨reference semantics?????????????????????????????????????????????η?????????????????????????/??????????????????????????????????????????????????£???????????????????÷??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????塣
????2. ?????????????????????????????????????????????????????????????ò???????????????????????????????????????????????????????????????????????
????3. ??????ζ?????????????????????????????????????Ρ???????????????????????????????????????????????????????????????????????????????????????????????????? boost::optional ??????std::optional??????? C++ 14 ??? n3797 14 ?з??? ????
????4. ???????????????????????????????????????????????????????????????????forward declaration?????????????????????????????????????????????????????????????????????????????????Ч??????????? Pimpl idiom ?÷???
????5. ??C???C???????????????????????????????????£????????????????????????????????С?????????????????????????????????????????get????????????C?????????????????????????????????????????????????????????????У??????? deleter ?????????Ч?????????