資源描述:
《windows編程-windows編程實(shí)驗(yàn)一3》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、Windows編程實(shí)驗(yàn)一姓名:盧建斌班級:計(jì)科1303學(xué)號:20133102003131、開發(fā)環(huán)境搭建:(1)參考附件《實(shí)驗(yàn)講義》中第一個(gè)實(shí)驗(yàn)文檔,配置QtCreater2.8.1和Q4.8.5開發(fā)環(huán)境。(2)參考第二個(gè)實(shí)驗(yàn)文檔,創(chuàng)建HelloWorld應(yīng)用。(3)根據(jù)以上經(jīng)驗(yàn),自己創(chuàng)建一個(gè)控制臺程序項(xiàng)目。然后,參考附件family_relationship項(xiàng)目,完成:1、試錯(cuò)練習(xí)。至少歸納出3個(gè)編譯器報(bào)錯(cuò)的可能情況,總結(jié)在以下空白處。1.e:QTQtsorkspacelfather.h:14:錯(cuò)誤:'string'doesnotnameatypestring不是一個(gè)類型的名字
2、2.e:QTQtsorkspacelchild.cpp:16:錯(cuò)誤:requestformember'answer'in,((Child*)this)->Child::father,,whichisofnon-classtype'Father**沒有指針類型應(yīng)該使用3.e:QTQtsorkspacelfather.h:8:辛昔誤:'sd'isnotanamespace-namest不是命名空間的名字4.e:QTQtsorkspace1father.h:8:luexpectednamespace-namebeforeVtoken命名空間沒有包含進(jìn)來2、為Child
3、類增添代碼,時(shí)Child也能呼叫Fathero嘗試若不使用前置聲明方法,或者不使用指針數(shù)據(jù)成員,或者不初始化對象中的指針成員時(shí),可能出現(xiàn)的各種編譯器報(bào)錯(cuò)或運(yùn)行期錯(cuò)誤。1.E:QTQtsorkspacefamily_relationshipchild.h:l3:錯(cuò)誤:field'father'hasincompletetypefather是一個(gè)不完全類型2.e:QTQtsorkspacelchild.cpp:16:錯(cuò)誤:invaliduseofincompletetype'structFather'編譯器不知道所用的struct或者是class的具體實(shí)現(xiàn)也就是說要使用的那
4、個(gè).h文件沒有包含進(jìn)來3.e:QTQtsorkspace1child.h:6:錯(cuò)誤:forwarddeclarationof'structFather'沒有加father.h頭文件4.E:QTQtsorkspacefamily_relationshipchild.h:14:錯(cuò)誤:ISOC++forbidsdeclarationof'Father1withnotype當(dāng)father.cpp、child.cpp兩個(gè)文件,分別包含了對方的頭文件,并旦分別又在自己的類中聲明了對象3、寫Mother類代碼,探索是否只能夠釆用前置聲明和指針數(shù)據(jù)成員相結(jié)合的編程技術(shù),嘗試用兩種不同編
5、程技術(shù)實(shí)現(xiàn)Mother?類和Child類。方法一:mother,h#ifndefMOTHER_H#defineMOTHER_H#includeusingnamespacestd;#include"child?hHclassMother{public:Mother();stringname;Child*child;voidcallChild();voidanswer();};#endif//MOTHER」mother?cpp#includenmother?h11?include6、(11HuaHua11){child=newChild();child->mother=this;}voidMother::callChildO{coutvvendlvv”]amcallingmychild!H;child->answer();}voidMother::answer(){coutusingnamespacestd;//#include11chiId?h"classChild;classMother{p
7、ublic:Mother();stringname;Child*child;voidcallChild();voidanswer();};#endif//MOTHER_Hmother?cpp//#include"mother?h”?include#include"child?h”#includeclassMother;Mother::Mother():name(nHuaHuan){child=newChild