C常见英文面试笔试题Word格式.docx
- 文档编号:22420836
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:15
- 大小:126.30KB
C常见英文面试笔试题Word格式.docx
《C常见英文面试笔试题Word格式.docx》由会员分享,可在线阅读,更多相关《C常见英文面试笔试题Word格式.docx(15页珍藏版)》请在冰豆网上搜索。
Whatisconstructororctor
Constructorcreatesanobjectandinitializesit.Italsocreatesvtable变量列表forvirtualfunctions.Itisdifferentfromothermethodsinaclass.
Whatisdestructor
Destructorusuallydeletesanyextraresourcesallocatedbytheobject.
Whatisdefaultconstructor
Constructorwithnoargumentsoralltheargumentshasdefaultvalues.
Whatiscopyconstructor
Constructorwhichinitializestheit'
sobjectmembervariables(byshallowcopying)withanotherobjectofthesameclass.Ifyoudon'
timplementoneinyourclassthencompilerimplementsoneforyou.
forexample:
BooObj1(10);
Membertomembercopy(shallowcopy)
WhatarealltheimplicitmemberfunctionsoftheclassOrwhatareallthefunctionswhichcompilerimplementsforusifwedon'
tdefineone.
defaultctorcopyctorassignmentoperatordefaultdestructoraddressoperator
Whatisconversionconstructor
constructorwithasingleargumentmakesthatconstructorasconversionctoranditcanbeusedfortypeconversion.
classBoo{public:
Boo(inti);
};
BooBooObject=10;
forexample:
classBoo{doublevalue;
public:
Boo(inti)operatordouble(){returnvalue;
}};
BooBooObject;
doublei=BooObject;
nowconversionoperatorgetscalledtoassignthevalue.
Whatisdiffbetweenmalloc()/free()andnew/delete
mallocallocatesmemoryforobjectinheapbutdoesn'
tinvokeobject'
sconstructortoinitiallizetheobject.
newallocatesmemoryandalsoinvokesconstructortoinitializetheobject.
malloc()andfree()donotsupportobjectsemanticsDoesnotconstructanddestructobjectsstring*ptr=(string*)(malloc(sizeof(string)))ArenotsafeDoesnotcalculatethesizeoftheobjectsthatitconstructReturnsapointertovoidint*p=(int*)(malloc(sizeof(int)));
int*p=newint;
Arenotextensiblenewanddeletecanbeoverloadedinaclass
"
delete"
firstcallstheobject'
sterminationroutine.itsdestructor)andthenreleasesthespacetheobjectoccupiedontheheapmemory.Ifanarrayofobjectswascreatedusingnew,thendeletemustbetoldthatitisdealingwithanarraybyprecedingthenamewithanempty[]:
-
Int_t*my_ints=newInt_t[10];
...
delete[]my_ints;
whatisthediffbetween"
new"
and"
operatornew"
workslikemalloc.
Whatisdifferencebetweentemplateandmacro
Thereisnowayforthecompilertoverifythatthemacroparametersareofcompatibletypes.Themacroisexpandedwithoutanyspecialtypechecking.
Ifmacroparameterhasapost-incrementedvariable(likec++),theincrementisperformedtwotimes.
Becausemacrosareexpandedbythepreprocessor,compilererrormessageswillrefertotheexpandedmacro,ratherthanthemacrodefinitionitself.Also,themacrowillshowupinexpandedformduringdebugging.
Macro:
#definemin(i,j)(i<
ji:
j)
template:
template<
classT>
Tmin(Ti,Tj)
{
returni<
j;
}
WhatareC++storageclasses
autoregisterstaticextern
auto:
thedefault.Variablesareautomaticallycreatedandinitializedwhentheyaredefinedandaredestroyedattheendoftheblockcontainingtheirdefinition.Theyarenotvisibleoutsidethatblock
register:
atypeofautovariable.asuggestiontothecompilertouseaCPUregisterforperformance
static:
avariablethatisknownonlyinthefunctionthatcontainsitsdefinitionbutisneverdestroyedandretains=keepitsvaluebetweencallstothatfunction.Itexistsfromthetimetheprogrambeginsexecution
extern:
astaticvariablewhosedefinitionandplacementisdeterminedwhenallobjectandlibrarymodulesarecombined(linked)toformtheexecutablecodefile.Itcanbevisibleoutsidethefilewhereitisdefined.
WhatarestoragequalifiersinC++
Theyare..
constvolatilemutable
Constkeywordindicatesthatmemoryonceinitialized,shouldnotbealteredbyaprogram.
volatilekeywordindicatesthatthevalueinthememorylocationcanbealteredeventhoughnothingintheprogramcodemodifiesthecontents.forexampleifyouhaveapointertohardwarelocationthatcontainsthetime,wherehardwarechangesthevalueofthispointervariableandnottheprogram.Theintentofthiskeywordtoimprovetheoptimizationabilityofthecompiler.
mutablekeywordindicatesthatparticularmemberofastructureorclasscanbealteredevenifaparticularstructurevariable,class,orclassmemberfunctionisconstant.
structdata{charname[80];
mutabledoublesalary;
constdataMyStruct={"
SatishShetty"
1000};
prependingvariablewith"
&
symbolmakesitasreference.
inta;
int&
b=a;
读amp
Whatispassingbyreference
Methodofpassingargumentstoafunctionwhichtakesparameteroftypereference.
voidswap(int&
x,int&
y){inttemp=x;
x=y;
y=temp;
inta=2,b=3;
swap(a,b);
Basically,insidethefunctiontherewon'
tbeanycopyofthearguments"
x"
y"
insteadtheyrefertooriginalvariablesaandb.sonoextramemoryneededtopassargumentsanditismoreefficient.
Whendouse"
const"
referenceargumentsinfunction
a)Usingconstprotectsyouagainstprogrammingerrorsthatinadvertently不经意的alterdata.b)Usingconstallowsfunctiontoprocessbothconstandnon-constactualarguments,whileafunctionwithoutconstintheprototypecanonlyacceptnonconstantarguments.c)Usingaconstreferenceallowsthefunctiontogenerateanduseatemporaryvariableappropriately.
WhenaretemporaryvariablescreatedbyC++compiler
Providedthatfunctionparameterisa"
constreference"
compilergeneratestemporaryvariableinfollowing2ways.
a)Theactualargumentisthecorrecttype,butitisn'
tLvalue
doubleCube(constdouble&
num){num=num*num*num;
returnnum;
doubletemp=;
doublevalue=cube+temp);
classparent{voidShow(){cout<
<
"
i'
mparent"
<
endl;
}};
classchild:
publicparent{voidShow(){cout<
mchild"
parent*parent_object_ptr=newchild;
parent_object_ptr->
show().
classparent{virtualvoidShow(){cout<
show()Thisbaseclassiscalledabstractclassandclientwon'
tabletoinstantiateanobjectusingthisbaseclass.
Youcanmakeapurevirtualfunctionorabstractclassthisway..
classBoo{voidfoo()=0;
BooMyBoo;
Soapointerwithtwobytealignmenthasazerointheleastsignificantbit.Andapointerwithfourbytealignmenthasazeroinboththetwoleastsignificantbits.Andsoon.Morealignmentmeansalongersequenceofzerobitsinthelowestbitsofapointer.
Whatproblemdoesthenamespacefeaturesolve
Multipleprovidersoflibrariesmightusecommonglobalidentifierscausinganamecollisionwhenanapplicationtriestolinkwithtwoormoresuchlibraries.Thenamespacefeaturesurroundsalibrary'
sexternaldeclarationswithauniquenamespacethateliminates消除thepotentialforthosecollisions.
namespace[identifier]{namespace-body}
Anamespacedeclarationidentifiesandassignsanametoadeclarativeregion.Theidentifierinanamespacedeclarationmustbeuniqueinthedeclarativeregioninwhichitisused.Theidentifieristhenameofthenamespaceandisusedtoreferenceitsmembers.
Whatistheuseof'
using'
declaration
Ausingdeclarationmakesitpossibletouseanamefromanamespacewithoutthescope范围operator.
WhatisanIterator迭代器class
Aclassthatisusedtotraversethrough穿过theobjectsmaintainedbyacontainerclass.Therearefivecategoriesofiterators:
inputiterators,outputiterators,forwarditerators,bidirectionaliterators,randomaccess.Aniteratorisanentitythatgivesaccesstothecontentsofacontainerobjectwithoutviolatingencapsulationconstraints.Accesstothecontentsisgrantedonaone-at-a-timebasisinorder.Theordercanbestorageorder(asinlistsandqueues)orsomearbitraryorder(asinarrayindices)oraccordingtosomeorderingrelation(asinanorderedbinarytree).Theiteratorisaconstruct,whichprovidesaninterfacethat,whencalled,yieldseitherthenextelementinthecontainer,orsomevaluedenotingthefactthattherearenomoreelementstoexamine.Iteratorshidethedetailsofaccesstoandupdateoftheelementsofacontainerclass.Somethinglikeapointer.
Whatisadangling悬挂pointer
Adanglingpointerariseswhenyouusetheaddressofanobjectafteritslifetimeisover.Thismayoccurinsituationslikereturningaddressesoftheautomaticvariablesfromafunctiono
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 常见 英文 试笔 试题