Ano ang opaque type sa C?
Ano ang opaque type sa C?

Video: Ano ang opaque type sa C?

Video: Ano ang opaque type sa C?
Video: Make your Data Type more Abstract with Opaque Types in C 2024, Setyembre
Anonim

Mga uri ng opaque ay, sa bahagi, isang paraan upang makagawa C mas object-oriented. Pinapayagan nila ang encapsulation, upang ang mga panloob na detalye ng a uri maaaring magbago--o maipatupad nang iba sa iba't ibang platform/situasyon--nang hindi kailangang baguhin ang code na gumagamit nito.

Sa pagpapanatiling nakikita ito, ano ang opaque na uri ng data sa C?

An opaque na uri ng data ay isang uri na ang pagpapatupad ay nakatago mula sa gumagamit. Ang tanging paraan upang magamit opaque na uri ng data ay sa pamamagitan ng abstract pointer interface na nakalantad sa API. Ang isang sikat na halimbawa ay ang FILE uri ng datos nasa C karaniwang I/O library. h) at nagbibigay din ng user friendly na deklarasyon ng interface ng pointer.

Pangalawa, ano ang opaque na halaga? " Malabo " ay tinukoy, sa Ingles, bilang "hindi nakikita sa pamamagitan ng; hindi transparent". Sa Computer Science, ang ibig sabihin nito ay a halaga na naghahayag ng walang mga detalye maliban sa uri ng halaga mismo. Madalas ginagamit ng mga tao ang C type na FILE bilang klasikong halimbawa ngunit kadalasan ay hindi ito malabo - ang mga detalye ay ipinahayag sa stdio.

Bukod pa rito, ano ang isang opaque na istraktura?

Sa computer science, isang malabo Ang uri ng data ay isang uri ng data na ang konkretong datos istraktura ay hindi tinukoy sa isang interface. Ipinapatupad nito ang pagtatago ng impormasyon, dahil ang mga halaga nito ay maaari lamang manipulahin sa pamamagitan ng pagtawag sa mga subroutine na may access sa nawawalang impormasyon.

Ano ang pinakamahusay na paraan ng pagpapatupad ng opaque abstract na mga uri ng data sa C?

Isa magandang paraan ay para sa mga kliyente na gumamit ng mga structure pointer (marahil ay nakatago sa likod ng mga typedef) na tumuturo sa istraktura mga uri na hindi tinukoy sa publiko.

Inirerekumendang: