??????????
???????C++??????
??????????????C++?????У?????????????——.cpp?????.h????????У?.cpp?????????C++???????????????C++?????????.h?????????C++???????????????C++???????
????C+ +???????“??????”??separate compilation????????????????????е????????????????????????????.cpp?????.cpp????????????????????????? ??compile??????????????????????????????????????????????????????????????????link??????????磬?????a.cpp?ж??? ???????????“void a() {}”?????????b.cpp??????????????????????????????a.cpp?????b.cpp??????????????????????????????????????б??? ???????????????????????????????????????
????????????????????д???????????????????????b.cpp?У?????? “void a()”????????????????????????“void a();”???????????????????????????b.cpp???????????????????symbol table??????“void a()”?????????????????????????????????С????????????????????????????????????????????????塣?????????????????? ????????????
????????????????????????????“????”???????“????”?????????“????”??????????????????????????????????? ?????????????????????????????????????“????”?????????????????????????????????????????????????????ж???????????????????????? ??????????????????????????????ɡ????????????C++?????????????????????????????????????????????????д???????????????? ?????????????????????????????п??????????Σ?????????????????Ρ??????????????????????????????壬??????????????
?????? ??????C++???????????????????????????????д????????????????£??????????????????“void f() {}”?????????????е????.cpp????ж??????????????????????????????ж?????????????????????????????????????????????????????? ?????????????????仰????????????????????????????????????????кü???????????????????????????????????????????к?????????? ???????????д??????
????????????????
?????????????????????????????????????????????????????????????????????鷳??????????????????????????????????д??????????????????????????????????????Щ???????copy????????????С?
?????? ????????????У?????????鷳?????????ú???????????????????????????????????ν????????????????????.cpp????е????????????????? C++??????????????????????????????е??????????????????????У???????.cpp????????????????????????????????? “#include”?????????.cpp????У???????????????????.cpp??????????.cpp??????????????Щ???????????.h?????????? ?????
??????????????????????е?????????????????f1??f2?????????????????????math.cpp??
????/* math.cpp */
????double f1()
????{
????//do something here....
????return;
????}
????double f2(double a)
????{
????//do something here...
????return a * a;
????}
????/* end of math.cpp */
????????“??Щ”?????????????????????math.h?У?
????/* math.h */
????double f1();
????double f2(double);
????/* end of math.h */
??????????????main.cpp?У???????????????????????????????????????????
????/* main.cpp */
????#include "math.h"
????main()
????{
????int number1 = f1();
????int number2 = f2(number1);
????}
????/* end of main.cpp */
?????? ?????????????????????????????????.h???????д???????????????????????????????????????????????main.cpp????????£??? main.cpp??math.cpp???????????????????main.o??math.o???????????????????????????????????????????