shénme shì cāo zuò fú zhòng zài ?
yī kàn dào zhòng zài, hěn róng yì jiù ràng rén lián xiǎng dào chéng yuán hán shù zhòng zài, hán shù zhòng zài kě yǐ shǐ míng chēng xiāng tóng de hán shù jù yòu bù tóng de shí jì gōng néng, zhǐ yào fù gěi zhè xiē tóng míng hán shù bù tóng de cān shù jiù kě yǐ liǎo, cāo zuò fú zhòng zài yě shì jī yú zhè yī jī zhì de。 xì tǒng wèiwǒ men tí gōng liǎo xǔ duō cāo zuò fú, bǐ rú “ + ”,“ []” děng, zhè xiē cāo zuò fú dōuyòu yī xiē mò rèn de gōng néng, ér cāo zuò fú zhòng zài jī zhì yǔn xǔ wǒ men gěi zhè xiē cāo zuò fú fù yú bù tóng de gōng néng, bìng néng gòu 'àn zhào pǔ tōng cāo zuò fú de shǐ yòng gé shì lái shǐ yòng zì jǐ dìng yì gōng néng de cāo zuò fú( jí zhòng zài de cāo zuò fú)。
dìng yì zhī hòu, wǒ men jiù kě yǐ 'àn zhào píng cháng shǐ yòng cāo zuò fú de gé shì lái shǐ yòng wǒ men zì jǐ de zhòng zài cāo zuò fú liǎo。
cāo zuò fú zhòng zài yī bān zài lèi nèi bù dìng yì, jiù xiàng chéng yuán hán shù yī yàng dìng yì, zhè jiào zuò lèi chéng yuán zhòng zài cāo zuò fú。 dāng rán yě kě yǐ zài lèi wài dìng yì, jí fēi lèi chéng yuán cāo zuò fú zhòng zài 。
wèishénme yào shǐ yòng cāo zuò fú zhòng zài ?
jǔ lì shuō míng, bǐ rú lèi string, gāi lèi yòu zhè yàng yī gè gōng néng, kě yǐ jiāng liǎng gè zì fú chuàn lián jiē chéng yī gè zì fú chuàn, wèicǐ, wǒ men kě yǐ gěi lèi string dìng yì yī gè chéng yuán hán shù shí xiàn cǐ gōng néng, kě yǐ gěi gāi hán shù qǔ yī gè xíng xiàng de míng zì, bǐ rú concatenate huò append, dàn shì xiāng bǐ jiào, zhè liǎng gè míng zì dōubù rú cāo zuò fú“ +=” xíng xiàng zhí guān。 zài zhè zhǒng qíng kuàng xià, wǒ men jiù kě yǐ dìng yì cāo zuò fú“ +=” de zhòng zài, lái shí xiàn cǐ gōng néng。
yě jiù shì shuō, rú guǒ yào dìng yì yī gè hán shù, ér zhè gè hán shù de gōng néng yǔ cāo zuò fú de gōng néng bǐ jiào lèi sì shí, zhè gè shí hòu wǒ men jiù kě yǐ dìng yì zhòng zài cāo zuò fú, ér bù shǐ yòng tōng cháng de chéng yuán hán shù dìng yì。 zhè lǐ suǒ shuō de cāo zuò fú zhòng zài , zhǐ de shì yǔ xì tǒng dìng yì de cāo zuò fú zhòng zài , ér bù shì shuō dìng yì liǎng gè“ +=”, zhè liǎng gè zhòng zài, zhè yī diǎn xū yào qīng chǔ。
dàn shì zhè sì gè cāo zuò fú bù néng yòng yú zhòng zài: ::*?:
rú hé shēng míng cāo zuò fú zhòng zài ?
tóng pǔ tōng hán shù lèi sì, zhǐ bù guò tā de míng zì bāo kuò guān jiàn zì operator, yǐ jí jǐn suí qí hòu de yī gè yù dìng yì cāo zuò fú。 lì rú:
string&operator+=(conststring&);
string&operator+=(constchar*);
zhù yì: shàng miàn de kuò hào biǎo shì xíng shì cān shù, jí shǐ cāo zuò fú zhòng zài bù xū yào cān shù, yě yìng gāi xiě shàng yī gè kōng de“ ()”, ér bù shì jiāng qí shěng lüè, zhè yī diǎn qí shí hé pǔ tōng hán shù de shēng míng shì lèi sì de。 qí shí, shēng míng de wéi yī qū bié jiù shì míng zì bù tóng 'ér yǐ。
zěn yàng shǐ yòng cāo zuò fú zhòng zài ?
liǎng zhǒng cāo zuò fú zhòng zài : lèi chéng yuán cāo zuò fú zhòng zài hé fēi lèi chéng yuán cāo zuò fú zhòng zài 。
1、 lèi chéng yuán cāo zuò fú zhòng zài
yǐ zhī lèi string zhōng shēng míng liǎo liǎng gè“ ==” cāo zuò fú zhòng zài , fēn bié shì:
booloperator==(constchar*)const;
booloperator==(conststring&)const;
qí zhōng dì yī gè zhòng zài de cāo zuò fú yǔn xǔ wǒ men bǐ jiào yī gè string lèi duì xiàng shì fǒu děng yú yī gè c fēng gé zì fú chuàn, dì 'èr gè yǔn xǔ wǒ men bǐ jiào liǎng gè string lèi duì xiàng shì fǒu xiāng děng。
shì lì dài mǎ
:
#include<string.h>
intmain()
{
stringflower;
if(flower==” lily” )// zhèng què: diào yòng booloperator==(constchar*)const;
……
else
if(“ tulip” ==flower)// cuò wù
…… .
}
guān jiàn kàn yī xià, wèishénme dì 'èr gè zhòng zài cāo zuò fú de shǐ yòng shì cuò wù de?
yīn wéi: zhǐ yòu zài zuǒ cāo zuò shù shì gāi lèi lèi xíng de duì xiàng shí, cái huì kǎo lǜ shǐ yòng zuò wéi lèi chéng yuán de zhòng zài cāo zuò fú。
yīn wéi zhè lǐ de” tulip” bù shì string lèi xíng duì xiàng, suǒ yǐ biān yì qì shì tú zhǎo dào yī gè nèi zhì cāo zuò fú, tā kě yǐ yòu yī gè c fēng gé zì fú chuàn de zuǒ cāo zuò shù, rán 'ér shì shí shàng bìng bù cún zài zhè yàng de cāo zuò fú, suǒ yǐ biān yì shí chǎn shēng cuò wù。
yí wèn: wǒ men kě yǐ shǐ yòng string lèi de gòu zào hán shù jiāng yī gè c fēng gé zì fú chuàn, zhuǎn huàn chéng yī gè string duì xiàng, wèishénme biān yì qì bù néng zuò yǐ shàng zhuǎn huàn ní? jí
if(string(“ tulip” )==flower);// zhè yàng jiù shì zhèng què de
dá: wèile xiàolǜ hé zhèng què xìng
zhòng zài cāo zuò fú bìng bù yào qiú liǎng gè cāo zuò shù de lèi xíng yī dìng xiāng tóng。 kě néng yòu zhè yàng yī gè lèi text, zhè gè lèi de gòu zào hán shù de cān shù jí qí chéng yuán zhòng zài cāo zuò fú de cān shù dū yǔ string lèi yī zhì, rú guǒ shǐ biān yì qì néng gòu zì dòng jiāng c fēng gé zì fú chuàn zhuǎn huàn chéng mǒu gè lèi xíng de duì xiàng, nà me biān yì qì shǒu xiān huì jiǎn suǒ suǒ yòu de lèi dìng yì, xuǎn zé néng gòu tí gōng zhèng què gòu zào hán shù hé zhòng zài cāo zuò fú de lèi jìn xíng zhuǎn huàn, zhè wú yí huì zēng jiā chéng xù de biān yì shí jiān, hái yòu jiù shì lèi string hé lèi text jūn hé shì, biān yì qì yě bù zhī dào gāi jiāng c fēng gé zì fú chuàn zhuǎn huàn chéng string hái shì text duì xiàng liǎo。
duì yú lèi chéng yuán zhòng zài cāo zuò fú, yǐn shì de this zhǐ zhēn bèi yòng zuò yǐn shì de dì yī gè cān shù, duì yú chéng yuán cāo zuò fú, flower==” lily” huì bèi biān yì qì zhòng xiě wéi: flower.operator==(“ lily” );
2、 fēi lèi chéng yuán cāo zuò fú zhòng zài
wèile jiě jué shàng miàn de wèn tí, wǒ men kě yǐ kǎo lǜ shǐ yòng fēi lèi chéng yuán cāo zuò fú dài tì lèi chéng yuán cāo zuò fú, zhè yàng zuò de hǎo chù shì zuǒ cāo zuò shǔbù bì fēi yào shì mǒu gè lèi de lèi xíng duì xiàng liǎo, duì yú xū yào liǎng gè cāo zuò shù de cāo zuò fú zhòng zài , wǒ men jiù kě yǐ dìng yì liǎng gè cān shù liǎo。 bǐ rú:
booloperator==(conststring&,conststring&);
booloperator==(conststring&,constchar*);
kě yǐ kàn dào, zhè liǎng gè quán jú zhòng zài cāo zuò fú bǐ chéng yuán cāo zuò fú duō liǎo yī gè cān shù , zhè yàng dìng yì zhī hòu, hái shì shàng miàn de dài mǎ, dāng diào yòng flower==” lily” shí, huì diào yòng shàng miàn de booloperator==(conststring&,constchar*);
rán 'ér“ tulip” ==flower huì diào yòng nǎ gè cāo zuò fú zhòng zài ní, wǒ men bìng méi yòu dìng yì booloperator==(constchar*,conststring&);, wǒ men shì bù shì bì xū dìng yì zhè yàng yī gè quán jú cāo zuò fú zhòng zài ní? dá 'àn shì fǒu dìng de, yīn wéi dāng yī gè zhòng zài cāo zuò fú shì yī gè míng zì kōng jiān hán shù shí, duì yú cāo zuò fú de dì yī gè hé dì 'èr gè cān shù, jí děng yú cāo zuò fú de zuǒ yòu liǎng gè cāo zuò shù dū huì kǎo lǜ zhuǎn huàn, jiù xiàng intvi=1;doublevd=2.0;vi=vi+vd; huì xiān jiāng vd zhuǎn huàn chéng int xíng, zài zuò jiā fǎ yī yàng zhè yì wèi zhe, biān yì qì jiāng jiě shì dì 'èr gè yòng fǎ rú xià:
booloperator==(string(“ tulip” ),flower)。 zhè yàng huì zēng jiā xì tǒng zhuǎn huàn kāi xiāo。
yīn cǐ, rú guǒ xū yào pín fán bǐ jiào c fēng gé zì fú chuàn hé string duì xiàng, nà me zuì hǎo dìng yì shàng miàn de cāo zuò fú zhòng zài , rú guǒ bù pín fán, wǒ men zhǐ xū dìng yì xià miàn yī gè jiù gòu liǎo:
booloperator==(conststring&,conststring&);
shénme shí hòu dìng yì lèi chéng yuán cāo zuò fú zhòng zài , shénme shí hòu dìng yì fēi lèi chéng yuán cāo zuò fú zhòng zài ?
dá:( 1) rú guǒ yī gè zhòng zài cāo zuò fú shì lèi chéng yuán, nà me zhǐ yòu dāng gēn tā yī qǐ shǐ yòng de zuǒ cāo zuò shù shì gāi lèi duì xiàng shí, tā cái huì bèi diào yòng, rú guǒ gāi cāo zuò fú de zuǒ cāo zuò shù bì xū shì qí tā lèi xíng, nà me zhòng zài cāo zuò fú bì xū shì fēi lèi chéng yuán cāo zuò fú zhòng zài 。
( 2) c++ yào qiú, fù zhí( =), xià biāo( []), diào yòng( ()) hé chéng yuán fǎng wèn jiàn tóu( ->) cāo zuò fú bì xū bèi zhǐ dìng wéi lèi chéng yuán cāo zuò fú, fǒu zé cuò wù。 |
|
|