C
C est altioris gradus lingua programmandi quam annis 1980s Bjarne Stroustrup e lingua C creavit. Hac cum lingua obiecta spectante programmata contortuliora modo generaliori faciliorique scribi et compilari possunt, et, ob originem in C, omnia programmata C paene sine mutatione in C compilari etiam possunt.
Salve, munde!
[recensere | fontem recensere]Hic textus monstrat programma minimum, quod "Salve, munde!" in monitorium mittit.
// quod iussum obiectum std::cout praebet
#include <iostream>
int main()
{
std::cout << "Salve, munde!" << std::endl;
}
Historia
[recensere | fontem recensere]Stroustrup, cum apud Societatis AT&T Bell Laboratoria laborare coeperet, problema datur ut nucleus UNIX respectu? computationis distributatae aestimet. Experientia eius studiorum PhD memoria tenente, Stroustrup linguam C adiunctis linguae Simulae meliorare proficiscitur. C selegit propterea quod ad omnia adhiberi potest, celeris portabilisque est, et in usu commni erat. Etiam eo tempore animatus erat ab linguis ALGOL 68, Ada, CLU et ML.
Annos postquam linguam primum elaborare incepit, anno 1998 norma linguae C sancta est designatione ISO/IEC 14882:1998. Illa norma usque hodie vim habet, sed enmendata est anno 2003 ab Corrigendo Technico ISO/IEC 14882:2003 designatio. Proxima versio normalis affabiliter C 0x nuncupata usque hodie elaboratur.
Natura
[recensere | fontem recensere]C plurimam linguae C syntaxim et praeprocessorium accepit. Lingua autem undecim res additionales praebet quae laborem programmatorum meliorant:
- Dictum
//
, quo post in singula linea possumus reddere commentationes - Dictum
const
, quo constantes alphanumerici definiri possunt - Dictum
inline
, quo functiones singulae lineae definiri possunt - Declarationes quae ubique possunt poni
- Referentias et operatorem referentialem
&
new
etdelete
, quae facile sinunt variabilium memoriam allocare et deallocare- Obiectorum usum lingua re vera sustinet, classes veras praebens, quibus programmatores possunt definire nova genera variabilium programmatis aptorum, et functiones eorum (quae methodi appellantur).
- Constructores, destructores, operatores, methodosque a programmatoribus definitas
- Incapsulationem, ubi dictis
private
,public
,protected
programmatores possunt decernere variabiles secretos et methodos quibus hi variabiles legi, adhiberi vel commutari possint, - Hereditatem, ubi novae classes possunt heriditare variabiles et functiones ex classe antea definita
- Superpositiones (Anglice: Overloading) operatorum mathematicorum et aliorum functionum, ubi programma continue decernit methodum applicabilem iuxta datum variabilium genus
Classes et obiecta
[recensere | fontem recensere]C ad C syntaxim linguarum obiecta spectantium introduxit. Classibus cum definiuntur praebentur : abstractio, incapsulatio, hereditas, polymorphismus, et superpositio. Classis ita cogitari potest ut forma ex qua obiecta individua cudantur cum programma operatur. Classis definita idem ac int aut float in programmate fungit, et obiecta declarata idem ac variabiles huius classis. Classes igitur sinunt programmatores omnino nova genera variabilium definire et adhibere quae similia sunt int, float, etc.
Exemplum programmatis infra datum monstrat syntaxim qua classes declaruntur, et quo modo obiecta adhibentur in parte principali programmatis main()
.
#include <iostream>
#include <cstring>
using namespace std;
class persona
{
public: //haec data et functiones publice commutari et haberi possunt
string nomen;
int aetasData();
persona();
private: //haec data et functiones sola per methodos huius classis commutari et haveri possunt
int annusPraesens = 2013;
int annusNatalis;
int aetas;
void aetatemPonere();
};
void persona::aetatemPonere() //Sola hac methodo aetas personae poni potest
{
cout<<"Quo anno natus est?";
cin>>annusNatalis;
aetas= 2013-annusNatalis;
}
int persona::aetasData() //Sola hac methodo aetas personae dari potest
{
return aetas;
}
persona::persona() //Hic est classis constructor
{
cout<<"Nomen?";
cin>>nomen;
aetatemPonere();
}
int main()
{
persona Maria;
persona *Caesar = new persona;
cout<<Maria.nomen<<" "<<Maria.aetasData()<<endl;
cout<<Caesar->nomen<<" "<<Caesar->aetasData()<<endl;
}
Nexus interni
Bibliographia
[recensere | fontem recensere]