<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>este es mi primera pg</title>
	<atom:link href="http://hermeant.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://hermeant.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Sun, 29 Jun 2008 19:12:51 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='hermeant.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>este es mi primera pg</title>
		<link>http://hermeant.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://hermeant.wordpress.com/osd.xml" title="este es mi primera pg" />
	<atom:link rel='hub' href='http://hermeant.wordpress.com/?pushpress=hub'/>
		<item>
		<title>FOTOS DE HERMES</title>
		<link>http://hermeant.wordpress.com/2008/06/29/fotos-de-hermes/</link>
		<comments>http://hermeant.wordpress.com/2008/06/29/fotos-de-hermes/#comments</comments>
		<pubDate>Sun, 29 Jun 2008 18:47:21 +0000</pubDate>
		<dc:creator>hermeant</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://hermeant.wordpress.com/?p=12</guid>
		<description><![CDATA[   <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hermeant.wordpress.com&amp;blog=4023234&amp;post=12&amp;subd=hermeant&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://hermeant.files.wordpress.com/2008/06/dcfc00012.jpg"><img class="alignnone size-medium wp-image-19" src="http://hermeant.files.wordpress.com/2008/06/dcfc00012.jpg?w=236&#038;h=300" alt="" width="236" height="300" /></a> </p>
<p><a href="http://hermeant.files.wordpress.com/2008/06/dcfc0005.jpg"><img class="alignnone size-medium wp-image-16" src="http://hermeant.files.wordpress.com/2008/06/dcfc0005.jpg?w=300&#038;h=230" alt="" width="300" height="230" /></a></p>
<p><a href="http://hermeant.files.wordpress.com/2008/06/dcfc0004.jpg"><img class="alignnone size-medium wp-image-13" src="http://hermeant.files.wordpress.com/2008/06/dcfc0004.jpg?w=300&#038;h=234" alt="" width="300" height="234" /></a><a href="http://hermeant.files.wordpress.com/2008/06/dcfc00011.jpg"></a></p>
<p> </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hermeant.wordpress.com/12/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hermeant.wordpress.com/12/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hermeant.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hermeant.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hermeant.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hermeant.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hermeant.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hermeant.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hermeant.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hermeant.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hermeant.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hermeant.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hermeant.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hermeant.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hermeant.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hermeant.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hermeant.wordpress.com&amp;blog=4023234&amp;post=12&amp;subd=hermeant&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hermeant.wordpress.com/2008/06/29/fotos-de-hermes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59f55d6cf8c8c22192cc694826477646?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">hermeant</media:title>
		</media:content>

		<media:content url="http://hermeant.files.wordpress.com/2008/06/dcfc00012.jpg?w=236" medium="image" />

		<media:content url="http://hermeant.files.wordpress.com/2008/06/dcfc0005.jpg?w=300" medium="image" />

		<media:content url="http://hermeant.files.wordpress.com/2008/06/dcfc0004.jpg?w=300" medium="image" />
	</item>
		<item>
		<title>ARQUITECTURA DEL COMPUTADOR</title>
		<link>http://hermeant.wordpress.com/2008/06/27/arquitectura-del-computador/</link>
		<comments>http://hermeant.wordpress.com/2008/06/27/arquitectura-del-computador/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 19:29:45 +0000</pubDate>
		<dc:creator>hermeant</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://hermeant.wordpress.com/?p=11</guid>
		<description><![CDATA[La arquitectura de computadoras es el diseño conceptual y la estructura operacional fundamental de un sistema de computadora. Es decir, es un modelo y una descripción funcional de los requerimientos y las implementaciones de diseño para varias partes de una computadora, con especial interés en la forma en que la unidad central de proceso (CPU) [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hermeant.wordpress.com&amp;blog=4023234&amp;post=11&amp;subd=hermeant&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>La <strong>arquitectura de computadoras</strong> es el diseño conceptual y la estructura operacional fundamental de un sistema de <a title="Computadora" href="http://hermeant.wordpress.com/wiki/Computadora">computadora</a>. Es decir, es un modelo y una descripción funcional de los requerimientos y las implementaciones de diseño para varias partes de una computadora, con especial interés en la forma en que la <a class="mw-redirect" title="Unidad central de proceso" href="http://hermeant.wordpress.com/wiki/Unidad_central_de_proceso">unidad central de proceso</a> (CPU) trabaja internamente y accede a las direcciones de <a title="Memoria" href="http://hermeant.wordpress.com/wiki/Memoria">memoria</a>.</p>
<p>También suele definirse como la forma de seleccionar e interconectar componentes de <a title="Hardware" href="http://hermeant.wordpress.com/wiki/Hardware">hardware</a> para crear computadoras según los requerimientos de funcionalidad, rendimiento y costo.</p>
<p>La segmentación de instrucciones es similar al uso de una cadena de montaje en una fábrica de manufacturación. En las cadenas de montaje, el producto pasa a través de varias etapas de producción antes de tener el producto terminado. Cada etapa o segmento de la cadena está especializada en un área específica de la línea de producción y lleva a cabo siempre la misma actividad. Esta tecnología es aplicada en el diseño de procesadores eficientes. A estos procesadores se les conoce como pipeline processors.</p>
<p>Un pipeline processor está compuesto por una lista de segmentos lineales y secuenciales en donde cada segmento lleva a cabo una tarea o un grupo de tareas computacionales.</p>
<p>Los datos que provienen del exterior se introducen en el sistema para ser procesados. La computadora realiza operaciones con los datos que tiene almacenados en memoria, produce nuevos datos o información para uso externo.</p>
<p>Las arquitecturas y los conjuntos de instrucciones se pueden clasificar considerando los siguientes aspectos:</p>
<ul>
<li>Almacenamiento de operandos en la CPU: dónde se ubican los operandos aparte de la memoria.</li>
<li>Número de operandos explícitos por instrucción: cuántos operandos se expresan en forma explícita en una instrucción típica. Normalmente son 0, 1, 2 y 3.</li>
<li>Posición del operando: Puede cualquier operando estar en memoria?, o deben estar algunos o todos en los registros internos de la CPU. Cómo se especifica la dirección de memoria (modos de direccionamiento disponibles)</li>
<li>Operaciones: Qué operaciones están disponibles en el conjunto de instrucciones.</li>
<li>Tipo y tamaño de operandos y cómo se especifican.</li>
</ul>
<p><a id="Almacenamiento_de_operandos_en_la_CPU" name="Almacenamiento_de_operandos_en_la_CPU"></a></p>
<h2><span class="mw-headline">Almacenamiento de operandos en la CPU</span></h2>
<p>La diferencia básica está en el almacenamiento interno de la CPU. Las principales alternativas son:</p>
<ul>
<li>[Pila]</li>
<li><a title="Acumulador (informática)" href="http://hermeant.wordpress.com/wiki/Acumulador_%28inform%C3%A1tica%29">Acumulador</a></li>
<li>Conjunto de registros</li>
<li>Características</li>
</ul>
<p>En una arquitectura de acumulador un operando está implícitamente en el acumulador siempre leyendo e ingresando datos. (Ej: calculadora Standard -estándar-)</p>
<p>En la arquitectura de pila no es necesario nombrar a los operandos ya que estos se encuentran en el tope de la pila. (Ej: calculadora de pila HP)</p>
<p>La Arquitectura de registros tiene solo operandos explícitos (es aquel que se nombra) en registros o memoria.<br />
<strong>Ventajas de los diferentes tipos de Arquitecturas :</strong></p>
<ul>
<li>Pila : Modelo sencillo para evaluación de expresiones (notación polaca inversa). Instrucciones cortas pueden dar una buena densidad de código.</li>
</ul>
<ul>
<li><a title="Acumulador (informática)" href="http://hermeant.wordpress.com/wiki/Acumulador_%28inform%C3%A1tica%29">Acumulador</a>: Instrucciones cortas. Minimiza estados internos de la máquina (unidad de control sencilla) .</li>
</ul>
<ul>
<li>Registro: Modelo mas general para el código de instrucciones parecidas. Automatiza generación de código y la reutilización de operandos. Reduce el tráfico a memoria. Una computadora actualmente tiene como estándar 32 registros. El acceso a los datos es más rápido.</li>
</ul>
<p><strong>Desventajas de los diferentes tipos de Arquitecturas:</strong></p>
<ul>
<li>Pila: A una pila no se puede acceder aleatoriamente. Esta limitación hace difícil generar código eficiente. Tambien dificulta una implementación eficente, ya que la pila llega a ser un cuello de botella.</li>
</ul>
<ul>
<li>Acumulador: Como el acumulador es solamente almacenamiento temporal, el tráfico de memoria es el mas alto en esta aproximación.</li>
</ul>
<ul>
<li>Registro: Todos los operadores deben ser nombrados, conduciendo a instrucciones más largas.</li>
</ul>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hermeant.wordpress.com/11/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hermeant.wordpress.com/11/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hermeant.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hermeant.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hermeant.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hermeant.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hermeant.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hermeant.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hermeant.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hermeant.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hermeant.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hermeant.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hermeant.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hermeant.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hermeant.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hermeant.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hermeant.wordpress.com&amp;blog=4023234&amp;post=11&amp;subd=hermeant&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hermeant.wordpress.com/2008/06/27/arquitectura-del-computador/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59f55d6cf8c8c22192cc694826477646?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">hermeant</media:title>
		</media:content>
	</item>
		<item>
		<title>PROGRAMACION</title>
		<link>http://hermeant.wordpress.com/2008/06/27/programacion/</link>
		<comments>http://hermeant.wordpress.com/2008/06/27/programacion/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 19:13:40 +0000</pubDate>
		<dc:creator>hermeant</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://hermeant.wordpress.com/?p=7</guid>
		<description><![CDATA[Se puede decir que C++ es un lenguaje que abarca tres paradigmas de la programación: la programación estructurada, la programación genérica y la programación orientada a objetos. Actualmente existe un estándar, denominado ISO C++, al que se han adherido la mayoría de los fabricantes de compiladores más modernos. Existen también algunos intérpretes como ROOT (enlace [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hermeant.wordpress.com&amp;blog=4023234&amp;post=7&amp;subd=hermeant&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Se puede decir que C++ es un lenguaje que abarca tres <a title="Paradigma de programación" href="http://hermeant.wordpress.com/wiki/Paradigma_de_programaci%C3%B3n">paradigmas de la programación</a>: la <a title="Programación estructurada" href="http://hermeant.wordpress.com/wiki/Programaci%C3%B3n_estructurada">programación estructurada</a>, la <a title="Programación genérica" href="http://hermeant.wordpress.com/wiki/Programaci%C3%B3n_gen%C3%A9rica">programación genérica</a> y la <a title="Programación orientada a objetos" href="http://hermeant.wordpress.com/wiki/Programaci%C3%B3n_orientada_a_objetos">programación orientada a objetos</a>.</p>
<p>Actualmente existe un estándar, denominado ISO C++, al que se han adherido la mayoría de los fabricantes de compiladores más modernos. Existen también algunos intérpretes como ROOT (enlace externo). Las principales características del C++ son las facilidades que proporciona para la <a title="Programación orientada a objetos" href="http://hermeant.wordpress.com/wiki/Programaci%C3%B3n_orientada_a_objetos">programación orientada a objetos</a> y para el uso de plantillas o <a title="Programación genérica" href="http://hermeant.wordpress.com/wiki/Programaci%C3%B3n_gen%C3%A9rica">programación genérica</a> (<em>templates</em>).</p>
<p>Además posee una serie de propiedades difíciles de encontrar en otros <a class="mw-redirect" title="Lenguajes de alto nivel" href="http://hermeant.wordpress.com/wiki/Lenguajes_de_alto_nivel">lenguajes de alto nivel</a>:</p>
<ul>
<li>Posibilidad de redefinir los operadores (sobrecarga de operadores)</li>
<li>Identificación de tipos en tiempo de ejecución (<em>RTTI</em>)</li>
</ul>
<p><em>C++</em> está considerado por muchos como el lenguaje más potente, debido a que permite trabajar tanto a alto como a bajo nivel, sin embargo es a su vez uno de los que menos automatismos trae (obliga a hacerlo casi todo manualmente al igual que C) lo que &#8220;dificulta&#8221; mucho su aprendizaje.</p>
<p>El nombre <strong>C++</strong> fue propuesto por <a class="extiw" title="Rick_Mascitti" href="http://en.wikipedia.org/wiki/Rick_Mascitti">Rick Mascitti</a> en el año <a title="1983" href="http://hermeant.wordpress.com/wiki/1983">1983</a>, cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio científico. Antes se había usado el nombre &#8220;C con clases&#8221;. En C++, la expresión &#8220;C++&#8221; significa &#8220;incremento de C&#8221; y se refiere a que C++ es una extensión de C.</p>
<table id="toc" class="toc" border="0" summary="Tabla de contenidos">
<tbody>
<tr>
<td>
<div id="toctitle">
<h2>Tabla de contenidos</h2>
<p><span class="toctoggle">[<a id="togglelink" class="internal" href="toggleToc()">ocultar</a>]</span></div>
<ul>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#Un_ejemplo_de_programa_en_C.2B.2B.2C_el_cl.C3.A1sico_Hola_Mundo"><span class="tocnumber">1</span> <span class="toctext">Un ejemplo de programa en C++, el clásico Hola Mundo</span></a></li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#Conceptos_generales_de_la_programaci.C3.B3n_orientada_a_objetos"><span class="tocnumber">2</span> <span class="toctext">Conceptos generales de la programación orientada a objetos</span></a></li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#Tipos_Primitivos_en_C.2B.2B"><span class="tocnumber">3</span> <span class="toctext">Tipos Primitivos en C++</span></a>
<ul>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Tama.C3.B1os_Asociados"><span class="tocnumber">3.1</span> <span class="toctext">Tamaños Asociados</span></a></li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#wchar_t"><span class="tocnumber">3.2</span> <span class="toctext">wchar_t</span></a></li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#La_Palabra_Clave_.22void.22"><span class="tocnumber">3.3</span> <span class="toctext">La Palabra Clave &#8220;void&#8221;</span></a></li>
</ul>
</li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#Principios"><span class="tocnumber">4</span> <span class="toctext">Principios</span></a></li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#El_Concepto_de_Clase"><span class="tocnumber">5</span> <span class="toctext">El Concepto de Clase</span></a>
<ul>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Constructores"><span class="tocnumber">5.1</span> <span class="toctext">Constructores</span></a></li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Destructores"><span class="tocnumber">5.2</span> <span class="toctext">Destructores</span></a></li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Funciones_Miembro"><span class="tocnumber">5.3</span> <span class="toctext">Funciones Miembro</span></a></li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Plantillas"><span class="tocnumber">5.4</span> <span class="toctext">Plantillas</span></a>
<ul>
<li class="toclevel-3"><a href="http://hermeant.wordpress.com/wp-admin/#Especializaci.C3.B3n"><span class="tocnumber">5.4.1</span> <span class="toctext">Especialización</span></a></li>
</ul>
</li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Clases_Abstractas"><span class="tocnumber">5.5</span> <span class="toctext">Clases Abstractas</span></a></li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Espacios_de_Nombres"><span class="tocnumber">5.6</span> <span class="toctext">Espacios de Nombres</span></a></li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Excepciones"><span class="tocnumber">5.7</span> <span class="toctext">Excepciones</span></a></li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Herencia"><span class="tocnumber">5.8</span> <span class="toctext">Herencia</span></a>
<ul>
<li class="toclevel-3"><a href="http://hermeant.wordpress.com/wp-admin/#Herencia_Simple"><span class="tocnumber">5.8.1</span> <span class="toctext">Herencia Simple</span></a></li>
<li class="toclevel-3"><a href="http://hermeant.wordpress.com/wp-admin/#Herencia_M.C3.BAltiple"><span class="tocnumber">5.8.2</span> <span class="toctext">Herencia Múltiple</span></a></li>
</ul>
</li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Sobrecarga_de_Operadores"><span class="tocnumber">5.9</span> <span class="toctext">Sobrecarga de Operadores</span></a></li>
</ul>
</li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#Librer.C3.ADa_Est.C3.A1ndar_de_Plantillas_.28STL.29"><span class="tocnumber">6</span> <span class="toctext">Librería Estándar de Plantillas (STL)</span></a>
<ul>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#ostreams_.2F_istreams"><span class="tocnumber">6.1</span> <span class="toctext">ostreams / istreams</span></a></li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#fstreams"><span class="tocnumber">6.2</span> <span class="toctext">fstreams</span></a></li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#sstreams"><span class="tocnumber">6.3</span> <span class="toctext">sstreams</span></a></li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Contenedores"><span class="tocnumber">6.4</span> <span class="toctext">Contenedores</span></a></li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Iteradores"><span class="tocnumber">6.5</span> <span class="toctext">Iteradores</span></a></li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Algoritmos"><span class="tocnumber">6.6</span> <span class="toctext">Algoritmos</span></a></li>
</ul>
</li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#Diferencias_de_Tipos_respecto_de_C"><span class="tocnumber">7</span> <span class="toctext">Diferencias de Tipos respecto de C</span></a></li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#Compiladores"><span class="tocnumber">8</span> <span class="toctext">Compiladores</span></a></li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#V.C3.A9ase_tambi.C3.A9n"><span class="tocnumber">9</span> <span class="toctext">Véase también</span></a></li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#Enlaces_externos"><span class="tocnumber">10</span> <span class="toctext">Enlaces externos</span></a></li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#Referencias"><span class="tocnumber">11</span> <span class="toctext">Referencias</span></a></li>
</ul>
</td>
</tr>
</tbody>
</table>
<p><a id="Un_ejemplo_de_programa_en_C.2B.2B.2C_el_cl.C3.A1sico_Hola_Mundo" name="Un_ejemplo_de_programa_en_C.2B.2B.2C_el_cl.C3.A1sico_Hola_Mundo"></a></p>
<h2><span class="mw-headline">Un ejemplo de programa en C++, el clásico Hola Mundo</span></h2>
<p>A continuación se cita un programa de ejemplo un &#8220;<a title="Hola mundo" href="http://hermeant.wordpress.com/wiki/Hola_mundo">Hola mundo</a>&#8221; escrito en C++:</p>
<div style="text-align:left;" dir="ltr">
<pre><span class="co2"><span style="color:#339900;">#include &lt;iostream&gt;   // Esta librería permite el uso de cout(&lt;&lt;) y de cin(&gt;&gt;)</span></span>

<span class="kw2"><span style="color:#0000ff;">using</span></span> <span class="kw2"><span style="color:#0000ff;">namespace</span></span> std;

<span class="kw4"><span style="color:#0000ff;">int</span></span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
    <span class="kw3"><span style="color:#0000dd;">cout</span></span> &lt;&lt; <span class="st0"><span style="color:#666666;">"¡Hola mundo!"</span></span> &lt;&lt; endl;
<span class="br0">}</span></pre>
</div>
<p>Al usar la directiva #include estamos diciendole al compilador que busque determinadas cosas en un archivo que se llama iostream.h , antes en c siempre habia que poner el .h al final de los archivos, ahora en c++ el compilador se encarga de buscarlos solo. Para evitar redefinir cosas ya hechas al ponerles igual nombre, se creo algo llamado espacios de nombres o namespace en el singular del ingles, en este caso hay un espacio de nombres llamado std que es donde se incluyen las definiciones entre muchas otras cosas de los operadores cin y cout necesarios para la entrada y salida de datos por el dispositivo estandar, tipicamente pantalla o teclado, y todo esto es exactamente lo que decimos al añadir la sentencia using namespace std. La definicion de funciones es igual que en c, salvo por la caracteristica que si main no va a recoger argumentos, no tenemos porque ponerselos, a diferencia de c que habia q ponerlos explicitamente aunque no se fueran a usar. Queda solo comentar que el simbolo &#8216;&lt;&lt;&#8217; se conoce como operador de insercion, y a grosso modo esta enviando a cout lo que queremos mostrar por pantalla para que lo pinte, en este caso la cadena &#8220;¡Hola mundo!&#8221; . El mismo operador &lt;&lt; se puede usar varias veces en la misma sentencia, de forma que gracias a esta caracteristica podemos poner un caracter endl al final, que es el equivalente del \n en el c o \n\r segun el sistema en que se este programando.</p>
<p><a id="Conceptos_generales_de_la_programaci.C3.B3n_orientada_a_objetos" name="Conceptos_generales_de_la_programaci.C3.B3n_orientada_a_objetos"></a></p>
<h2><span class="mw-headline">Conceptos generales de la programación orientada a objetos</span> <span class="editsection" style="font-weight:normal;font-size:small;margin-left:0;"><span style="font-size:x-small;">[</span><span style="font-size:x-small;">edi</span></span></h2>
<ul>
<li><em><a title="Clase (informática)" href="http://hermeant.wordpress.com/wiki/Clase_%28inform%C3%A1tica%29">Clase</a></em>: Es una plantilla que define la estructura de un conjunto de objetos, que al ser creados se llamarán las instancias de la clase. Esta estructura está compuesta por la definición de los atributos y la implementación de las operaciones ( métodos ).</li>
<li><em><a class="mw-redirect" title="Objetos (programación orientada a objetos)" href="http://hermeant.wordpress.com/wiki/Objetos_%28programaci%C3%B3n_orientada_a_objetos%29">Objeto</a></em>: Es la implementación de una instancia de clase, es decir, una ocurrencia de esta, que tiene los atributos definidos por la clase, y sobre la que se puede ejecutar las operaciones definidas en ella.</li>
<li><em><a title="Identificador" href="http://hermeant.wordpress.com/wiki/Identificador">Identidad</a></em>: Característica de cada objeto que lo diferencia de los demás, incluyendo de aquellos que pudieran pertenecer a la misma clase y tener los mismos valores en sus atributos.</li>
<li><em><a title="Herencia (programación orientada a objetos)" href="http://hermeant.wordpress.com/wiki/Herencia_%28programaci%C3%B3n_orientada_a_objetos%29">Herencia</a></em>: Es la capacidad que tienen las clases para heredar propiedades y métodos de otras clases.</li>
</ul>
<p><a id="Tipos_Primitivos_en_C.2B.2B" name="Tipos_Primitivos_en_C.2B.2B"></a></p>
<h2><span class="mw-headline">Tipos Primitivos en C++</span></h2>
<p>Los tipos de datos en C++ pueden clasificarse como:</p>
<ul>
<li>"enteros" (sin decimales)</li>
<li>"flotantes"(con decimales, tienen representación con coma flotante)</li>
<li>"caracteres"(letras)</li>
<li>"booleanos o lógicos"(representan valores verdaderos o falsos)</li>
</ul>
<p>Cada uno de los tipos tiene a su vez, por así decirlo, subtipos, que sólo se diferencian por agregar una cualidad al tipo de dato base, alterando el manejo del contenido de los datos; con signo, sin signo, más largos en memoria, menos largos en memoria, entre otros. Veamos especificaciones y ejemplos de ellos:</p>
<ol>
<li>Enteros
<ol>
<li><code>int</code></li>
<li><code>short int</code></li>
<li><code>long int</code></li>
<li><code>unsigned short int</code></li>
<li><code>unsigned int</code></li>
<li><code>unsigned long int</code></li>
</ol>
</li>
<li>Flotantes
<ol>
<li><code>float</code> (IEEE754 Simple)</li>
<li><code>double</code> (IEEE754 Normal)</li>
<li><code>long double</code> (IEEE754 Extendido)</li>
</ol>
</li>
<li>Caracter
<ol>
<li><code>char</code></li>
</ol>
</li>
<li>Booleano
<ol>
<li><code>bool</code></li>
</ol>
</li>
</ol>
<p>El modificador <strong><code>unsigned</code></strong> se puede aplicar a enteros para obtener números sin signo (por defecto los enteros contienen signo), con lo que se consigue un rango mayor de números naturales.</p>
<p><a id="Tama.C3.B1os_Asociados" name="Tama.C3.B1os_Asociados"></a></p>
<h3><span class="mw-headline">Tamaños Asociados</span></h3>
<table class="prettytable" border="0" align="right">
<caption><em>Tamaños de tipos primitivos bajo i386 (GCC)</em></caption>
<tbody>
<tr>
<td><strong>Tipo</strong></td>
<td><strong>Número de Bits</strong></td>
</tr>
<tr>
<td><code>char</code></td>
<td>8</td>
</tr>
<tr>
<td><code>short</code></td>
<td>16</td>
</tr>
<tr>
<td><code>int</code></td>
<td>32</td>
</tr>
<tr>
<td><code>float</code></td>
<td>32</td>
</tr>
<tr>
<td><code>double</code></td>
<td>64</td>
</tr>
</tbody>
</table>
<p>Según la máquina y el compilador que se utilice los tipos primitivos pueden ocupar un determinado tamaño en memoria. La siguiente lista ilustra el número de bits que ocupan los distintos tipos primitivos en un PC de la familia 386 con <a class="mw-redirect" title="Gcc" href="http://hermeant.wordpress.com/wiki/Gcc">gcc</a>.</p>
<p>Cabe notar que los tamaños en bits destacados anteriormente <span style="text-decoration:underline;">son correctos sólo para arquitecturas <em>x86</em> bajo los compiladores más comunes (GCC, Visual Studio...)</span>. Otras arquitecturas pueden requerir distintos tamaños de tipos de datos primitivos. C++ no dice nada acerca de cuál es el número de bits en un byte, ni del tamaño de estos tipos; más bien, ofrece solamente las siguientes "garantías de tipos":</p>
<ul>
<li>Un tipo <tt>char</tt> tiene el tamaño mínimo en <em>bytes</em> asignable por la máquina, y todos los bits de este espacio deben ser "accesibles".</li>
<li>El tamaño reconocido de <tt>char</tt> es de 1. Es decir,</li>
</ul>
<div style="text-align:left;" dir="ltr">
<pre><span class="kw3"><span style="color:#0000dd;">sizeof</span></span><span class="br0">(</span><span class="kw4"><span style="color:#0000ff;">char</span></span><span class="br0">)</span></pre>
</div>
<p>siempre devuelve 1.</p>
<ul>
<li>Un tipo <tt>short</tt> tiene <em>al menos el mismo</em> tamaño que un tipo <tt>char</tt>.</li>
<li>Un tipo <tt>long</tt> tiene <em>al menos el doble</em> tamaño en bytes que un tipo <tt>short</tt>.</li>
<li>Un tipo <tt>int</tt> tiene un tamaño entre el de <tt>short</tt> y el de <tt>long</tt>, ambos inclusive, preferentemente el tamaño de un apuntador de memoria de la máquina.</li>
<li>Un tipo <tt>unsigned</tt> tiene el mismo tamaño que su versión <tt>signed</tt>.</li>
</ul>
<p><a id="wchar_t" name="wchar_t"></a></p>
<h3><span class="mw-headline">wchar_t</span></h3>
<p>Para la versión del estándar que se publicó en 1999, se decidió añadir el tipo de dato <em>wchar_t</em>, que permite el uso de caracteres UNICODE, a diferencia del tradicional <em>char</em>, que contempla simplemente al código de caracteres ASCII extendido. A su vez, se ha definido para la mayoría de las funciones y clases tanto de C como de C++ una versión para trabajar con <em>wchar_t</em>, donde usualmente se prefija el caracter <em>w</em> al nombre de la función (en ocasiones el caracter es un infijo). Por ejemplo:</p>
<div style="text-align:left;" dir="ltr">
<pre><span class="co2"><span style="color:#339900;">#strcpy - wstrcpy</span></span>
<span class="co2"><span style="color:#339900;">#std::string - std::wstring</span></span>
<span class="co2"><span style="color:#339900;">#std::cout - std::wcout</span></span></pre>
</div>
<p>Cabe resaltar que en C, se define <code>wchar_t</code> como:</p>
<div style="text-align:left;" dir="ltr">
<pre><span class="kw4"><span style="color:#0000ff;">typedef</span></span> <span class="kw4"><span style="color:#0000ff;">unsigned</span></span> <span class="kw4"><span style="color:#0000ff;">short</span></span> <span class="kw2"><span style="color:#0000ff;">wchar_t</span></span>;</pre>
</div>
<p>mientras que en C++ es en sí mismo un tipo de dato.</p>
<p><a id="La_Palabra_Clave_.22void.22" name="La_Palabra_Clave_.22void.22"></a></p>
<h3><span class="mw-headline">La Palabra Clave "void"</span></h3>
<p>La palabra clave <em>void</em> define en C++ el concepto de no existencia, o no atribución de un tipo en una variable o declaración. Como tal, puede ser usada para destacar que una función no recibe parámetros, como en:</p>
<div style="text-align:left;" dir="ltr">
<pre><span class="kw4"><span style="color:#0000ff;">int</span></span> funcion <span class="br0">(</span><span class="kw4"><span style="color:#0000ff;">void</span></span><span class="br0">)</span>;</pre>
</div>
<p>, aunque la tendencia actual es la de no colocar la palabra "void".</p>
<p>Además se utiliza para determinar que una función no retorna un valor, como en:</p>
<div style="text-align:left;" dir="ltr">
<pre><span class="kw4"><span style="color:#0000ff;">void</span></span> funcion <span class="br0">(</span><span class="kw4"><span style="color:#0000ff;">int</span></span> parametro<span class="br0">)</span>;</pre>
</div>
<p>Cabe destacar que <strong><code>void</code> no es un tipo</strong>. Una función como la declarada anteriormente no puede retornar un valor por medio de <tt>return</tt>: la palabra clave va sola. No es posible una declaración del tipo:</p>
<div style="text-align:left;" dir="ltr">
<pre><span class="kw4"><span style="color:#0000ff;">void</span></span> t;</pre>
</div>
<p>En este sentido, <em>void</em> se comporta de forma ligeramente diferente a como lo hace en C, especialmente en cuanto a su significado en declaraciones y prototipos de funciones.</p>
<p>Sin embargo, la forma especial <tt>void *</tt> puede utilizarse como un ajuste que convierte cualquier variable a una "variable sin tipo", la cual puede sólo ser accedida y utilizada bajo una operación de <em>cast</em>. Por ejemplo:</p>
<div style="text-align:left;" dir="ltr">
<pre><span class="kw4"><span style="color:#0000ff;">void</span></span> * memoria;</pre>
</div>
<p>Indica que <tt>memoria</tt> es un puntero a <em>alguna parte</em>, donde se guarda información de <em>algún tipo</em>. El <a title="Programador" href="http://hermeant.wordpress.com/wiki/Programador">programador</a> es responsable de definir estos "algún", eliminando toda ambigüedad. Una ventaja de la declaración "<em>void *</em>" es que puede representar a la vez varios tipos de datos, dependiendo de la operación de <em>cast</em> escogida. La memoria que hemos apuntado en alguna parte, en el ejemplo anterior, bien podría almacenar un entero, un flotante, una cadena de texto, o un programa, o combinaciones de éstos. Es responsabilidad del programador recordar qué tipo de datos hay y garantizar el acceso adecuado.</p>
<p><a id="Principios" name="Principios"></a></p>
<h2><span class="mw-headline">Principios</span></h2>
<p>Todo programa en C++ debe tener la función <code>main()</code> (a no ser que se especifique en tiempo de compilación otro punto de entrada, que en realidad es la función que tiene el <code>main()</code></p>
<div style="text-align:left;" dir="ltr">
<pre><span class="kw4"><span style="color:#0000ff;">int</span></span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span><span class="br0">}</span></pre>
</div>
<p>La función <tt>main</tt> debe tener uno de los siguientes prototipos:<br />
<tt>int main()</tt><br />
<tt>int main(int argc, char** argv)</tt></p>
<p>La primera es la forma por defecto de un programa que no recibe parámetros ni argumentos. La segunda forma tiene dos parámetros: <em>argc</em>, un número describiendo el número de argumentos del programa (incluyendo el nombre del programa mismo), y <em>argv</em>, un puntero a un array de punteros, de <em>argc</em> elementos, donde el elemento <tt>argv[i]</tt> representa el <em>i</em>-ésimo argumento entregado al programa.</p>
<p>El tipo de retorno de <tt>main</tt> es <strong>int</strong>. Al finalizar la función main, debe incluirse el valor de retorno (por ejemplo, <tt>return 0;</tt>, aunque el estándar prevé solamente dos posibles valores de retorno: EXIT_SUCCESS y EXIT_ERROR, definidas en el archivo <tt>cstddef</tt>), o salir por medio de la función <tt>exit</tt>. Alternativamente puede dejarse en blanco, en cuyo caso el compilador es responsable de agregar la salida adecuada.</p>
<p><a id="El_Concepto_de_Clase" name="El_Concepto_de_Clase"></a></p>
<h2><span class="mw-headline">El Concepto de Clase</span></h2>
<p>Los objetos en C++ son abstraídos mediante una Clase. Según el paradigma de la programación orientada a objetos un objeto consta de:</p>
<ol>
<li>Métodos o funciones</li>
<li>Atributos o Variables Miembro</li>
</ol>
<p>Un ejemplo de clase que podemos tomar es la clase perro. Cada perro comparte unas características (atributos). Su número de patas, el color de su pelaje o su tamaño son algunos de sus atributos. Las funciones que lo hagan ladrar, cambiar su comportamiento... esas son las funciones de la clase.</p>
<p>Este es otro ejemplo de una clase:</p>
<div style="text-align:left;" dir="ltr">
<pre><span class="kw2"><span style="color:#0000ff;">class</span></span> Punto
<span class="br0">{</span>
<span class="co1"><span style="color:#ff0000;">//por defecto los miembros son 'private' para que sólo se puedan modificar desde la propia clase.</span></span>
<span class="kw2"><span style="color:#0000ff;">private</span></span>:
        <span class="co1"><span style="color:#ff0000;">// Variable miembro privada</span></span>
        <span class="kw4"><span style="color:#0000ff;">int</span></span> id;
<span class="kw2"><span style="color:#0000ff;">protected</span></span>:
        <span class="co1"><span style="color:#ff0000;">// Variables miembro protegidas</span></span>
        <span class="kw4"><span style="color:#0000ff;">int</span></span> x;
        <span class="kw4"><span style="color:#0000ff;">int</span></span> y;
<span class="kw2"><span style="color:#0000ff;">public</span></span>:
        <span class="co1"><span style="color:#ff0000;">// Constructor</span></span>
        Punto<span class="br0">(</span><span class="br0">)</span>;
        <span class="co1"><span style="color:#ff0000;">// Destructor</span></span>
        ~Punto<span class="br0">(</span><span class="br0">)</span>;
        <span class="co1"><span style="color:#ff0000;">// Funciones miembro o métodos</span></span>
        <span class="kw4"><span style="color:#0000ff;">int</span></span> ObtenerX<span class="br0">(</span><span class="br0">)</span>;
        <span class="kw4"><span style="color:#0000ff;">int</span></span> ObtenerY<span class="br0">(</span><span class="br0">)</span>;
<span class="br0">}</span>;</pre>
</div>
<p><a id="Constructores" name="Constructores"></a></p>
<h3><span class="mw-headline">Constructores</span></h3>
<p>Son unos métodos especiales que se ejecutan automáticamente al crear un objeto de la clase. En su declaración no se especifica el tipo de dato que devuelven, y poseen el mismo nombre que la clase a la que pertenecen. Al igual que otros métodos, puede haber varios constructores sobrecargados, aunque no pueden existir constructores virtuales.</p>
<p>Como característica especial a la hora de implementar un constructor, justo después de la declaración de los parámetros, se encuentra lo que se llama "lista de inicializadores". Su objetivo es llamar a los constructores de los atributos que conforman el objeto a construir.</p>
<p>Cabe destacar que no es necesario declarar un constructor al igual que un destructor, pues el compilador lo puede hacer, aunque no es la mejor forma de programar.</p>
<p>Tomando el ejemplo de la Clase Punto, si deseamos que cada vez que se cree un objeto de esta clase las coordenadas del punto sean igual a cero podemos agregar un constructor como se muestra a continuación:</p>
<div style="text-align:left;" dir="ltr">
<pre><span class="co1"><span style="color:#ff0000;">// Clase Punto</span></span>
<span class="co1"><span style="color:#ff0000;">//-----------------------------------------------------------------------</span></span>
<span class="kw2"><span style="color:#0000ff;">class</span></span> Punto
<span class="br0">{</span>
<span class="kw2"><span style="color:#0000ff;">public</span></span>:

 <span class="co1"><span style="color:#ff0000;">// Coordenadas del punto</span></span>

      <span class="kw4"><span style="color:#0000ff;">float</span></span> x;
      <span class="kw4"><span style="color:#0000ff;">float</span></span> y;  

 <span class="co1"><span style="color:#ff0000;">// Constructor</span></span>

      Punto<span class="br0">(</span><span class="br0">)</span> : x <span class="br0">(</span> <span class="nu0"><span style="color:#0000dd;">0</span></span> <span class="br0">)</span>, y <span class="br0">(</span> <span class="nu0"><span style="color:#0000dd;">0</span></span> <span class="br0">)</span> <span class="co1"><span style="color:#ff0000;">// Inicializamos las variables "x" e "y"</span></span>
      <span class="br0">{</span><span class="br0">}</span>

<span class="br0">}</span>;
<span class="co1"><span style="color:#ff0000;">//-----------------------------------------------------------------------</span></span>

<span class="co1"><span style="color:#ff0000;">// Main para demostrar el funcionamiento de la clase</span></span>

<span class="co2"><span style="color:#339900;">#include &lt;iostream&gt;    // Esto nos permite utilizar la función COUT</span></span>

<span class="kw2"><span style="color:#0000ff;">using</span></span> <span class="kw2"><span style="color:#0000ff;">namespace</span></span> std;

<span class="kw4"><span style="color:#0000ff;">int</span></span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
    Punto MiPunto;         <span class="co1"><span style="color:#ff0000;">// creamos un elemento de la clase Punto llamado MiPunto</span></span>

    cout&lt;&lt;<span class="st0"><span style="color:#666666;">"Coordenada X:"</span></span>&lt;&lt;MiPunto.<span class="me1"><span style="color:#00eeff;">x</span></span>&lt;&lt;endl;    <span class="co1"><span style="color:#ff0000;">// mostramos el valor acumulado en la variable x </span></span>
    cout&lt;&lt;<span class="st0"><span style="color:#666666;">"Coordenada Y:"</span></span>&lt;&lt;MiPunto.<span class="me1"><span style="color:#00eeff;">y</span></span>&lt;&lt;endl;    <span class="co1"><span style="color:#ff0000;">// mostramos el valor acumulado en la variable y </span></span>
    <span class="kw1"><span style="color:#0000ff;">return</span></span> <span class="nu0"><span style="color:#0000dd;">0</span></span>;
<span class="br0">}</span></pre>
</div>
<p>Si compilamos y ejecutamos el anterior programa, obtenemos una salida que debe ser similar a la siguiente:</p>
<p>Coordenada X:0 Coordenada Y:0</p>
<p><a id="Destructores" name="Destructores"></a></p>
<h3><span class="mw-headline">Destructores</span></h3>
<p>Los destructores son funciones miembro especiales llamadas automáticamente en la ejecución del programa, y por tanto <strong>no tienen por qué ser llamadas explícitamente por el programador</strong>. Su cometido es liberar los recursos computacionales que el objeto de dicha clase haya adquirido en tiempo de ejecución al expirar este.</p>
<p>Los destructores son invocados automáticamente al alcanzar el flujo del programa el fin del ámbito en el que está declarado el objeto.</p>
<p>Existen dos tipos de destructores pueden ser públicos o privados, según si se declaran:</p>
<ul>
<li>si es publico se llama desde cualquier parte del programa para destruir el objeto.</li>
</ul>
<ul>
<li>si es privado no se permite la destrucción del objeto por el usuario.</li>
</ul>
<p><a id="Funciones_Miembro" name="Funciones_Miembro"></a></p>
<h3><span class="mw-headline">Funciones Miembro</span></h3>
<p>Función miembro es aquella que está declarada en ámbito de clase. Son similares a las funciones habituales, con la salvedad de que el compilador realizara el proceso de <strong>Decoración de nombre</strong> (<em>Name Mangling</em> en inglés): Cambiara el nombre de la función añadiendo un identificador de la clase en la que está declarada, pudiendo incluir caracteres especiales o identificadores numéricos. Además, las funciones miembro reciben implícitamente un parámetro adicional: <strong>El puntero this</strong>, que referencia al objeto que ejecuta la función.</p>
<p>Las funciones miembro se invocan accediendo primero al objeto al cual refieren, con la sintaxis: <tt>myobject.mymemberfunction(), esto es un claro ejemplo de una función miembro.</tt>.</p>
<p>a</p>
<div style="text-align:left;" dir="ltr">
<pre><span class="co1"><span style="color:#ff0000;">// Clase Punto</span></span>
<span class="co1"><span style="color:#ff0000;">//-----------------------------------------------------------------------</span></span>
<span class="kw2"><span style="color:#0000ff;">class</span></span> Punto
<span class="br0">{</span>
<span class="kw2"><span style="color:#0000ff;">public</span></span>:

 <span class="co1"><span style="color:#ff0000;">// Coordenadas del punto</span></span>

      <span class="kw4"><span style="color:#0000ff;">float</span></span> x;
      <span class="kw4"><span style="color:#0000ff;">float</span></span> y;  

 <span class="co1"><span style="color:#ff0000;">// Constructor</span></span>

      Punto<span class="br0">(</span><span class="br0">)</span> : x <span class="br0">(</span> <span class="nu0"><span style="color:#0000dd;">0</span></span> <span class="br0">)</span>, y <span class="br0">(</span> <span class="nu0"><span style="color:#0000dd;">0</span></span> <span class="br0">)</span> <span class="co1"><span style="color:#ff0000;">// Inicializamos las variables "x" e "y"</span></span>
      <span class="br0">{</span><span class="br0">}</span>

<span class="br0">}</span>;
<span class="co1"><span style="color:#ff0000;">//-----------------------------------------------------------------------</span></span>

<span class="co1"><span style="color:#ff0000;">// Main para demostrar el funcionamiento de la clase</span></span>

<span class="co2"><span style="color:#339900;">#include &lt;iostream&gt;    // Esto nos permite utilizar la función COUT</span></span>

<span class="kw2"><span style="color:#0000ff;">using</span></span> <span class="kw2"><span style="color:#0000ff;">namespace</span></span> std;

<span class="kw4"><span style="color:#0000ff;">int</span></span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
    Punto MiPunto;         <span class="co1"><span style="color:#ff0000;">// creamos un elemento de la clase Punto llamado MiPunto</span></span>

    cout&lt;&lt;<span class="st0"><span style="color:#666666;">"Coordenada X:"</span></span>&lt;&lt;MiPunto.<span class="me1"><span style="color:#00eeff;">x</span></span>&lt;&lt;endl;    <span class="co1"><span style="color:#ff0000;">// mostramos el valor acumulado en la variable x </span></span>
    cout&lt;&lt;<span class="st0"><span style="color:#666666;">"Coordenada Y:"</span></span>&lt;&lt;MiPunto.<span class="me1"><span style="color:#00eeff;">y</span></span>&lt;&lt;endl;    <span class="co1"><span style="color:#ff0000;">// mostramos el valor acumulado en la variable y </span></span>
    <span class="kw1"><span style="color:#0000ff;">return</span></span> <span class="nu0"><span style="color:#0000dd;">0</span></span>;
<span class="br0">}</span></pre>
</div>
<p>Si compilamos y ejecutamos el anterior programa, obtenemos una salida que debe ser similar a la siguiente:</p>
<p>Coordenada X:0 Coordenada Y:0</p>
<p><a id="Plantillas" name="Plantillas"></a></p>
<h3><span class="mw-headline">Plantillas</span></h3>
<p>Las plantillas son el mecanismo de C++ para implantar el paradigma de la <a title="Programación genérica" href="http://hermeant.wordpress.com/wiki/Programaci%C3%B3n_gen%C3%A9rica">programación genérica</a>. Permiten que una clase o función trabaje con tipos de datos abstractos, especificándose más adelante cuales son los que se quieren usar. Por ejemplo, es posible construir un vector genérico que pueda contener cualquier tipo de estructura de datos. De esta forma se pueden declarar objetos de la clase de este vector que contengan enteros, flotantes, polígonos, figuras, fichas de personal, etc.</p>
<p>La declaración de una plantilla se realiza anteponiendo la declaración <tt>template &lt;typename A,....&gt;</tt> a la declaración de la estructura (clase, estructura o función) deseado.</p>
<p>Por ejemplo:</p>
<div style="text-align:left;" dir="ltr">
<pre><span class="kw2"><span style="color:#0000ff;">template</span></span> &lt;typename T&gt;
T max<span class="br0">(</span>T x, T y<span class="br0">)</span>
<span class="br0">{</span>
    <span class="kw1"><span style="color:#0000ff;">if</span></span> <span class="br0">(</span>x &gt; y<span class="br0">)</span>
        <span class="kw1"><span style="color:#0000ff;">return</span></span> x;
    <span class="kw1"><span style="color:#0000ff;">else</span></span>
        <span class="kw1"><span style="color:#0000ff;">return</span></span> y;
<span class="br0">}</span></pre>
</div>
<p>La función <tt>max()</tt> es un ejemplo de programación genérica, y dados dos parámetros de un tipo T (que puede ser <tt>int</tt>, <tt>long</tt>, <tt>float</tt>, <tt>double</tt>, etc.) devolverá el mayor de ellos (usando el operador <tt>&gt;</tt>). Al ejecutar la función con parámetros de un cierto tipo, el compilador intentará "calzar" la plantilla a ese tipo de datos, o bien generará un mensaje de error si fracasa en ese proceso.</p>
<p><a id="Especializaci.C3.B3n" name="Especializaci.C3.B3n"></a></p>
<h4><span class="mw-headline">Especialización</span></h4>
<p>El siguiente ejemplo:</p>
<div style="text-align:left;" dir="ltr">
<pre><span class="kw2"><span style="color:#0000ff;">template</span></span> &lt;typename A&gt; <span class="kw4"><span style="color:#0000ff;">int</span></span> myfunction<span class="br0">(</span>A a<span class="br0">)</span>;</pre>
</div>
<p>crea una plantilla bajo la cual pueden ser definidas en el código de cabecera cualesquiera funciones especializadas para un tipo de datos como <tt>int myfunction(int), int myfunction(std::string), int myfunction(bool)</tt>, etcétera:</p>
<div style="text-align:left;" dir="ltr">
<pre><span class="kw4"><span style="color:#0000ff;">int</span></span> myfunction <span class="br0">(</span><span class="kw4"><span style="color:#0000ff;">int</span></span> a<span class="br0">)</span> <span class="br0">{</span>
     <span class="kw1"><span style="color:#0000ff;">return</span></span> a + <span class="nu0"><span style="color:#0000dd;">5</span></span>;
     <span class="br0">}</span>;

<span class="kw4"><span style="color:#0000ff;">int</span></span> myfunction <span class="br0">(</span>std::<span class="me2"><span style="color:#00eeff;">string</span></span> a<span class="br0">)</span> <span class="br0">{</span>
     <span class="kw1"><span style="color:#0000ff;">return</span></span> -a.<span class="me1"><span style="color:#00eeff;">size</span></span><span class="br0">(</span><span class="br0">)</span>;
     <span class="br0">}</span>;

<span class="kw4"><span style="color:#0000ff;">int</span></span> myfunction <span class="br0">(</span><span class="kw4"><span style="color:#0000ff;">bool</span></span> a<span class="br0">)</span> <span class="br0">{</span>
     <span class="kw1"><span style="color:#0000ff;">return</span></span> <span class="br0">(</span>a &amp; <span class="kw3"><span style="color:#0000dd;">rand</span></span><span class="br0">(</span><span class="br0">)</span> <span class="br0">)</span>;
     <span class="br0">}</span>;</pre>
</div>
<p>Cada una de estas funciones tiene su propia definición (cuerpo). Cada cuerpo diferente, no equivalente ("no convertible") corresponde a una <strong>especialización</strong>. Si una de estas funciones no fuera definida, el compilador tratará de aplicar las conversiones de tipos de datos que le fuesen permitidas para "calzar" una de las plantillas, o generará un mensaje de error si fracasa en ese proceso.</p>
<p>Todas las definiciones habilitadas de una plantilla deben estar disponibles al momento de la compilación, por lo cual no es posible actualmente "compilar" una plantilla como archivo de objeto, sino simplemente compilar especializaciones de la plantilla. Por lo tanto, las plantillas se distribuyen junto con el código fuente de la aplicación. En otras palabras, no es posible compilar la plantilla <tt>std::vector&lt; &gt;</tt> a código objeto, pero sí es posible, por ejemplo, compilar un tipo de datos <tt>std::vector&lt;std::string&gt;</tt>.</p>
<p><a id="Clases_Abstractas" name="Clases_Abstractas"></a></p>
<h3><span class="mw-headline">Clases Abstractas</span></h3>
<p>En C++ es posible definir <strong>clases abstractas</strong>. Una clase abstracta, o clase base abstracta (ABC), es una que está diseñada sólo como clase <em>padre</em> de las cuales se deben derivar clases hijas. Una clase abstracta se usa para representar aquellas entidades o métodos que después se implementarán en las clases derivadas, pero la clase abstracta en sí no contiene ninguna implementación -- solamente representa los métodos que se deben implementar. Por ello, no es posible instanciar una clase abstracta, pero sí una clase concreta que implemente los métodos definidos en ella.</p>
<p>Las clases abstractas son útiles para definir interfaces, es decir, un conjunto de métodos que definen el comportamiento de un módulo determinado. Estas definiciones pueden utilizarse sin tener en cuenta la implementación que se hará de ellos.</p>
<p>En C++ los métodos de las clases abstractas se definen como <a title="Función virtual" href="http://hermeant.wordpress.com/wiki/Funci%C3%B3n_virtual">funciones virtuales</a> puras.</p>
<div style="text-align:left;" dir="ltr">
<pre><span class="kw2"><span style="color:#0000ff;">class</span></span> Abstracta
<span class="br0">{</span>
 <span class="kw2"><span style="color:#0000ff;">public</span></span>:
    <span class="kw2"><span style="color:#0000ff;">virtual</span></span> <span class="kw4"><span style="color:#0000ff;">int</span></span> metodo<span class="br0">(</span><span class="br0">)</span> = <span class="nu0"><span style="color:#0000dd;">0</span></span>;
<span class="br0">}</span>;

<span class="kw2"><span style="color:#0000ff;">class</span></span> ConcretaA : <span class="kw2"><span style="color:#0000ff;">public</span></span> Abstracta
<span class="br0">{</span>
 <span class="kw2"><span style="color:#0000ff;">public</span></span>:
     <span class="kw4"><span style="color:#0000ff;">int</span></span> metodo<span class="br0">(</span><span class="br0">)</span>
     <span class="br0">{</span>
      <span class="co1"><span style="color:#ff0000;">//haz algo</span></span>
      <span class="kw1"><span style="color:#0000ff;">return</span></span> foo <span class="br0">(</span><span class="br0">)</span> + <span class="nu0"><span style="color:#0000dd;">2</span></span>;
     <span class="br0">}</span>
<span class="br0">}</span>;

<span class="kw2"><span style="color:#0000ff;">class</span></span> ConcretaB : <span class="kw2"><span style="color:#0000ff;">public</span></span> Abstracta
<span class="br0">{</span>
  <span class="kw2"><span style="color:#0000ff;">public</span></span>:
     <span class="kw4"><span style="color:#0000ff;">int</span></span> metodo<span class="br0">(</span><span class="br0">)</span>
     <span class="br0">{</span>
         <span class="co1"><span style="color:#ff0000;">//otra implementación</span></span>
         <span class="kw1"><span style="color:#0000ff;">return</span></span> baz <span class="br0">(</span><span class="br0">)</span> - <span class="nu0"><span style="color:#0000dd;">5</span></span>;
    <span class="br0">}</span>
<span class="br0">}</span>;</pre>
</div>
<p>En el ejemplo, la clase <tt>ConcretaA</tt> es una implementación de la clase <tt>Abstracta</tt>, y la clase <tt>ConcretaB</tt> es otra implementación. Debe notarse que el <tt>= 0</tt> es la notación que emplea C++ para definir funciones virtuales puras.</p>
<p><a id="Espacios_de_Nombres" name="Espacios_de_Nombres"></a></p>
<h3><span class="mw-headline">Espacios de Nombres</span></h3>
<p>Una adición a las características de C son los <strong>espacios de nombre</strong> (<em>namespace</em> en inglés), los cuales pueden describirse como áreas virtuales bajo las cuales ciertos nombres de variable o tipos tienen validez. Esto permite evitar las ocurrencias de conflictos entre nombres de funciones, variables o clases.</p>
<p>El ejemplo más conocido en C++ es el espacio de nombres <tt>std::</tt>, el cual almacena todas las definiciones nuevas en C++ que difieren de C (algunas estructuras y funciones), así como las funcionalidades propias de C++ (streams) y los componentes de la biblioteca STL.</p>
<p>Por ejemplo:</p>
<div style="text-align:left;" dir="ltr">
<pre><span class="co2"><span style="color:#339900;">#include &lt;iostream&gt;</span></span>
<span class="co1"><span style="color:#ff0000;">// Las funciones en esta cabecera existen dentro del espacio de nombres std::</span></span>

<span class="kw2"><span style="color:#0000ff;">namespace</span></span> mi_paquete<span class="br0">{</span>
   <span class="kw4"><span style="color:#0000ff;">int</span></span> mi_valor;
<span class="br0">}</span>;

<span class="kw4"><span style="color:#0000ff;">int</span></span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
   <span class="kw4"><span style="color:#0000ff;">int</span></span> mi_valor= <span class="nu0"><span style="color:#0000dd;">3</span></span>;
   mi_paquete::<span class="me2"><span style="color:#00eeff;">mi_valor</span></span>= <span class="nu0"><span style="color:#0000dd;">4</span></span>;

   std::<span class="me2"><span style="color:#00eeff;">cout</span></span>&lt;&lt; mi_valor&lt;&lt; <span class="st0"><span style="color:#666666;">'<span class="es0"><strong>\n</strong></span>'</span></span>; <span class="co1"><span style="color:#ff0000;">// imprime '3'</span></span>
   std::<span class="me2"><span style="color:#00eeff;">cout</span></span>&lt;&lt; mi_paquete::<span class="me2"><span style="color:#00eeff;">mi_valor</span></span>&lt;&lt; <span class="st0"><span style="color:#666666;">'<span class="es0"><strong>\n</strong></span>'</span></span>; <span class="co1"><span style="color:#ff0000;">// imprime '4'</span></span>
   <span class="kw1"><span style="color:#0000ff;">return</span></span> <span class="nu0"><span style="color:#0000dd;">0</span></span>;

<span class="br0">}</span></pre>
</div>
<p>Como puede verse, las invocaciones directas a <em>mi_valor</em> darán acceso solamente a la variable descrita localmente; para acceder a la variable del paquete <em>mi_paquete</em> es necesario acceder específicamente el espacio de nombres. Un atajo recomendado para programas sencillos es la directiva <tt>using namespace</tt>, que permite acceder a los nombres de variables del paquete deseado en forma directa, siempre y cuando no se produzca alguna ambigüedad o conflicto de nombres.</p>
<p><a id="Excepciones" name="Excepciones"></a></p>
<h3><span class="mw-headline">Excepciones</span></h3>
<p>C++ permite la existencia de <em>excepciones</em>, las cuales son una metodología de flujo de ejecución basada en la prueba del código deseado (<strong>try</strong>) seguida por la intercepción de ciertas condiciones bajo un flujo de programa adicional (<strong>catch</strong>). La declaración de estas condiciones se hace "arrojando" (<strong>throw</strong>) sentencias especiales que son capturadas por el flujo <strong>catch</strong> correspondiente.</p>
<p>Por ejemplo:</p>
<div style="text-align:left;" dir="ltr">
<pre><span class="co2"><span style="color:#339900;">#include &lt;iostream&gt;</span></span>

<span class="co1"><span style="color:#ff0000;">// Muestra el uso de try y catch</span></span>

<span class="kw4"><span style="color:#0000ff;">int</span></span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
std::<span class="me2"><span style="color:#00eeff;">string</span></span> x = <span class="st0"><span style="color:#666666;">"Hola Mundo"</span></span>; 

<span class="kw2"><span style="color:#0000ff;">try</span></span> <span class="br0">{</span>
   std::<span class="me2"><span style="color:#00eeff;">cout</span></span>&lt;&lt; x.<span class="me1"><span style="color:#00eeff;">at</span></span><span class="br0">(</span><span class="nu0"><span style="color:#0000dd;">99</span></span><span class="br0">)</span>&lt;&lt;std::<span class="me2"><span style="color:#00eeff;">endl</span></span>;
<span class="br0">}</span>
<span class="kw2"><span style="color:#0000ff;">catch</span></span> <span class="br0">(</span>std::<span class="me2"><span style="color:#00eeff;">exception</span></span>&amp; X<span class="br0">)</span> <span class="br0">{</span>
   std::<span class="me2"><span style="color:#00eeff;">cerr</span></span>&lt;&lt; X.<span class="me1"><span style="color:#00eeff;">what</span></span><span class="br0">(</span><span class="br0">)</span>&lt;&lt;std::<span class="me2"><span style="color:#00eeff;">endl</span></span>;
<span class="br0">}</span>
<span class="kw1"><span style="color:#0000ff;">return</span></span> <span class="nu0"><span style="color:#0000dd;">0</span></span>;
<span class="br0">}</span></pre>
</div>
<p>En el ejemplo anterior, se hace el intento de acceder al caracter número 99 de la cadena "Hola Mundo", el cual no existe. El tipo de datos <tt>std::string</tt> arroja en estos casos, en la llamada a la función "at", una excepción, del tipo <tt>std::out_of_range</tt>, derivado de <tt>std::exception</tt>. El bloque <em>catch</em> "atrapará" la excepción arrojada como una variable X, para la cual el método <tt>what()</tt> muestra un mensaje con la causa del error (en nuestro caso, un mensaje similar a "Index Out of Range").</p>
<p>Es buena idea al crear nuevas excepciones derivarlas de <tt>std::exception</tt> ya que es el bloque <em>catch</em> que muchos programadores colocan por defecto.</p>
<p>Si una excepción se propaga sin ser atrapada por un bloque <em>catch</em>, y llegara hasta el punto de terminación del programa, se produce la terminación abrupta de éste ("abort").</p>
<p><a id="Herencia" name="Herencia"></a></p>
<h3><span class="mw-headline">Herencia</span></h3>
<p>Existen varios tipos de <a title="Herencia (programación orientada a objetos)" href="http://hermeant.wordpress.com/wiki/Herencia_%28programaci%C3%B3n_orientada_a_objetos%29">herencia</a> entre clases en el lenguaje de programación C++. Estos son:</p>
<p><a id="Herencia_Simple" name="Herencia_Simple"></a></p>
<h4><span class="mw-headline">Herencia Simple</span></h4>
<p>La herencia en C++ es un mecanismo de abstracción creado para poder facilitar, y mejorar el diseño de las clases de un programa. Con ella se pueden crear nuevas clases a partir de clases ya hechas, siempre y cuando tengan un tipo de relación especial.</p>
<p>En la herencia, las clases derivadas "heredan" los datos y las funciones miembro de las clases base, pudiendo las clases derivadas redefinir estos comportamientos (polimorfismo) y añadir comportamientos nuevos propios de las clases derivadas. Para no romper el principio de encapsulamiento (ocultar datos cuyo conocimiento no es necesario para el uso de las clases), se proporciona un nuevo modo de visibilidad de los datos/funciones: "protected". Cualquier cosa que tenga visibilidad protected se comportará como pública en la clase Base y en las que componen la jerarquía de herencia, y como privada en las clases que NO sean de la jerarquía de la herencia.</p>
<p>Antes de utilizar la herencia, nos tenemos que hacer una pregunta, y si tiene sentido, podemos intentar usar esta jerarquía: Si la frase &lt;claseB&gt; ES-UN &lt;claseA&gt; tiene sentido, entonces estamos ante un posible caso de herencia donde clase A será la clase base y clase B la derivada.</p>
<p>Ejemplo: clases Barco, Acorazado, Carguero, etc... un Acorazado ES-UN Barco, un Carguero ES-UN Barco, un Trasatlántico ES-UN Barco, etc...</p>
<p>En este ejemplo tendríamos las cosas generales de un Barco (en C++)</p>
<div style="text-align:left;" dir="ltr">
<pre><span class="kw2"><span style="color:#0000ff;">class</span></span> Barco <span class="br0">{</span>
   <span class="kw2"><span style="color:#0000ff;">protected</span></span>:
     <span class="kw4"><span style="color:#0000ff;">char</span></span>* nombre;
     <span class="kw4"><span style="color:#0000ff;">float</span></span> peso;
   <span class="kw2"><span style="color:#0000ff;">public</span></span>:
     <span class="co1"><span style="color:#ff0000;">//Constructores y demás funciones básicas de barco</span></span>
<span class="br0">}</span>;</pre>
</div>
<p>y ahora las características de las clases derivadas, podrían (a la vez que heredan las de barco) añadir cosas propias del subtipo de barco que vamos a crear, por ejemplo:</p>
<div style="text-align:left;" dir="ltr">
<pre><span class="kw2"><span style="color:#0000ff;">class</span></span> Carguero: <span class="kw2"><span style="color:#0000ff;">public</span></span> Barco <span class="br0">{</span> <span class="co1"><span style="color:#ff0000;">// Esta es la manera de especificar que hereda de Barco</span></span>
    <span class="kw2"><span style="color:#0000ff;">private</span></span>:
       <span class="kw4"><span style="color:#0000ff;">float</span></span> carga;
    <span class="co1"><span style="color:#ff0000;">//El resto de cosas</span></span>
<span class="br0">}</span>;

<span class="kw2"><span style="color:#0000ff;">class</span></span> Acorazado: <span class="kw2"><span style="color:#0000ff;">public</span></span> Barco <span class="br0">{</span>
    <span class="kw2"><span style="color:#0000ff;">private</span></span>:
       <span class="kw4"><span style="color:#0000ff;">int</span></span> numeroArmas;
       <span class="kw4"><span style="color:#0000ff;">int</span></span> Soldados;
       <span class="co1"><span style="color:#ff0000;">// Elresto de cosas</span></span>
<span class="br0">}</span>;</pre>
</div>
<p>Por último, hay que mencionar que existen 3 clases de herencia que se diferencian en el modo de manejar la visibilidad de los componentes de la clase resultante:</p>
<ul>
<li>Herencia publica (class Derivada: public Base ) : Con este tipo de herencia se respetan los comportamientos originales de las visibilidades de la clase Base en la clase Derivada.</li>
<li>Herencia privada (clase Derivada: private Base) : Con este tipo de herencia todo componente de la clase Base, será privado en la clase Derivada (ojo! siempre será privado aunque ese dato fuese público en la clase Base)</li>
<li>Herencia protegida (clase Derivada: protected Base) : Con este tipo de herencia, todo componente publico y protegido de la clase Base, será protegido en la clase Derivada, y los componentes privados, siguen siendo privados.</li>
</ul>
<p><a id="Herencia_M.C3.BAltiple" name="Herencia_M.C3.BAltiple"></a></p>
<h4><span class="mw-headline">Herencia Múltiple</span></h4>
<p>La <a title="Herencia múltiple" href="http://hermeant.wordpress.com/wiki/Herencia_m%C3%BAltiple">herencia múltiple</a> es el mecanismo que permite al programador hacer clases derivadas a partir, no de una sola clase base, sino de varias. Para entender esto mejor, pongamos un ejemplo: Cuando ves a quien te atiende en una tienda, como persona que es, podrás suponer que puede hablar, comer, andar, pero, por otro lado, como empleado que es, también podrás suponer que tiene un jefe, que puede cobrarte dinero por la compra, que puede devolverte el cambio, etc... Si esto lo trasladamos a la programación sería herencia múltiple (clase empleado_tienda):</p>
<div style="text-align:left;" dir="ltr">
<pre><span class="kw2"><span style="color:#0000ff;">class</span></span> Persona <span class="br0">{</span>
 ...
  <span class="me1"><span style="color:#00eeff;">Hablar</span></span><span class="br0">(</span><span class="br0">)</span>;
  Caminar<span class="br0">(</span><span class="br0">)</span>;
 ...
<span class="br0">}</span>;

<span class="kw2"><span style="color:#0000ff;">class</span></span> Empleado <span class="br0">{</span>
  Persona jefe;
  <span class="kw4"><span style="color:#0000ff;">int</span></span> sueldo;
  Cobrar<span class="br0">(</span><span class="br0">)</span>;
 ...
<span class="br0">}</span>;

<span class="kw2"><span style="color:#0000ff;">class</span></span> empleado_tienda: <span class="kw2"><span style="color:#0000ff;">public</span></span> Persona, Empleado <span class="br0">{</span>
 ...
  <span class="me1"><span style="color:#00eeff;">AlmacenarStock</span></span><span class="br0">(</span><span class="br0">)</span>;
  ComprobarExistencias<span class="br0">(</span><span class="br0">)</span>;
 ...
<span class="br0">}</span>;</pre>
</div>
<p>Por tanto, es posible utilizar más de una clase para que otra herede sus características.</p>
<p><a id="Sobrecarga_de_Operadores" name="Sobrecarga_de_Operadores"></a></p>
<h3><span class="mw-headline">Sobrecarga de Operadores</span></h3>
<p>La sobrecarga de operadores es una forma de hacer <a title="Polimorfismo (programación orientada a objetos)" href="http://hermeant.wordpress.com/wiki/Polimorfismo_%28programaci%C3%B3n_orientada_a_objetos%29">polimorfismo</a>. Es posible definir el comportamiento de un operador del lenguaje para que trabaje con tipos de datos definidos por el usuario. No todos los operadores de C++ son factibles de sobrecargar, y, entre aquellos que pueden ser sobrecargados, se deben cumplir condiciones especiales. En particular, los operadores <tt>sizeof</tt> y <tt>::</tt> no son sobrecargables.</p>
<p>No es posible en C++ crear un operador nuevo.</p>
<p>Los comportamientos de los operadores sobrecargados se implementan de la misma manera que una función, salvo que esta tendrá un nombre especial: <code><em>Tipo de dato de devolución</em> <strong>operator&lt;token del operador&gt;</strong>(<em>parámetros</em>)</code></p>
<p>Los siguientes operadores pueden ser sobrecargados:</p>
<ul>
<li>Operadores Unarios
<ul>
<li>Operador * (de indirección)</li>
<li>Operador -&gt; (de indirección)</li>
<li>Operador +</li>
<li>Operador -</li>
<li>Operador ++</li>
<li>Operador --</li>
</ul>
</li>
<li>Operadores Binarios
<ul>
<li>Operador +</li>
<li>Operador -</li>
<li>Operador *</li>
<li>Operador /</li>
<li>Operador %</li>
<li>Operador &lt;&lt;</li>
<li>Operador &gt;&gt;</li>
<li>Operador &amp;</li>
<li>Operador ^</li>
<li>Operador |</li>
<li>Operador []</li>
<li>Operador ()</li>
</ul>
</li>
<li>Operadores de Asignación
<ul>
<li>Operador =</li>
<li>Operador +=</li>
<li>Operador -=</li>
<li>Operador *=</li>
<li>Operador /=</li>
<li>Operador %=</li>
<li>Operador &lt;&lt;=</li>
<li>Operador &gt;&gt;=</li>
<li>Operador &amp;=</li>
<li>Operador ^=</li>
<li>Operador |=</li>
</ul>
</li>
</ul>
<p>Dado que estos operadores son definidos para un tipo de datos definido por el usuario, éste es libre de asignarles cualquiera semántica que desee. Sin embargo, se considera de primera importancia que las semánticas sean tan parecidas al comportamiento natural de los operadores como para que el uso de los operadores sobrecargados sea intuitivo. Por ejemplo, el uso del operador unario - debiera cambiar el "signo" de un "valor".</p>
<p>Los operadores sobrecargados no dejan de ser funciones, por lo que pueden devolver un valor, si este valor es del tipo de datos con el que trabaja el operador, permite el encadenamiento de sentencias. Por ejemplo, si tenemos 3 variables A,B y C de un tipo T y sobrecargamos el operador = para que trabaje con el tipo de datos T, hay dos opciones: si el operador no devuelve nada una sentencia como "A=B=C;" (sin las comillas) daría error, pero si se devuelve un tipo de datos T al implementar el operador, permitiría concatenar cuantos elementos se quisieran, permitiendo algo como "A=B=C=D=...;"</p>
<p><a id="Librer.C3.ADa_Est.C3.A1ndar_de_Plantillas_.28STL.29" name="Librer.C3.ADa_Est.C3.A1ndar_de_Plantillas_.28STL.29"></a></p>
<h2><span class="mw-headline">Librería Estándar de Plantillas (STL)</span></h2>
<p>Los lenguajes de programación suelen tener una serie de librerías integradas para la manipulación de datos a nivel más básico. En C++, además de poder usar las librerías de <a title="Lenguaje de programación C" href="http://hermeant.wordpress.com/wiki/Lenguaje_de_programaci%C3%B3n_C">C</a>, se puede usar la nativa STL (Standard Template Library), propia del lenguaje. Proporciona una serie de clases parametrizadas (véase más arriba <a class="mw-redirect" title="Plantillas" href="http://hermeant.wordpress.com/wiki/Plantillas">plantillas</a>) que permite efectuar operaciones sobre el almacenado de datos, procesado y flujos de entrada/salida. La STL más que una librería es un conjunto de ellas. De esta forma únicamente se incluyen en el fichero ejecutable final aquellas que sean necesarias para la aplicación que se esté programando, reduciendo drásticamente el uso innecesario de memoria.</p>
<p><a id="ostreams_.2F_istreams" name="ostreams_.2F_istreams"></a></p>
<h3><span class="mw-headline">ostreams / istreams</span></h3>
<p>Cabe destacar las clases <strong>basic_ostream</strong> y <strong>basic_stream</strong>, y los objetos <strong>cout</strong> y <strong>cin</strong>, pertenecientes a estas clases, respectivamente. Proporcionan la entrada y salida estándar de datos (teclado/pantalla). También está disponible <strong>cerr</strong>, similar a cout, usado para la salida estándar de errores. Estas clases tienen sobrecargados los operadores &lt;&lt; y &gt;&gt;, respectivamente, con el objeto de ser útiles en la inserción/extracción de datos a dichos flujos. Son operadores inteligentes, ya que son capaces de adaptarse al tipo de datos que reciben, aunque tendremos que definir el comportamiento de dicha entrada/salida para clases/tipos de datos definidos por el usuario. Por ejemplo:</p>
<div style="text-align:left;" dir="ltr">
<pre>ostream&amp; operator&lt;&lt;<span class="br0">(</span>ostream&amp; fs,<span class="kw4"><span style="color:#0000ff;">const</span></span> Punto&amp; punto<span class="br0">)</span>
<span class="br0">{</span>
  fs &lt;&lt; punto.<span class="me1"><span style="color:#00eeff;">x</span></span> &lt;&lt; <span class="st0"><span style="color:#666666;">","</span></span> &lt;&lt; punto.<span class="me1"><span style="color:#00eeff;">y</span></span>;
  <span class="kw1"><span style="color:#0000ff;">return</span></span> fs;
<span class="br0">}</span></pre>
</div>
<p>De esta forma, para mostrar un punto, solo habría que realizar la siguiente expresión:</p>
<div style="text-align:left;" dir="ltr">
<pre><span class="co1"><span style="color:#ff0000;">//...</span></span>
Punto p<span class="br0">(</span><span class="nu0"><span style="color:#0000dd;">4</span></span>,<span class="nu0"><span style="color:#0000dd;">5</span></span><span class="br0">)</span>;
<span class="co1"><span style="color:#ff0000;">//...</span></span>
<span class="kw3"><span style="color:#0000dd;">cout</span></span> &lt;&lt; <span class="st0"><span style="color:#666666;">"Las coordenadas son: "</span></span> &lt;&lt; p &lt;&lt; endl;
<span class="co1"><span style="color:#ff0000;">//...</span></span></pre>
</div>
<p>Es posible formatear la entrada/salida, indicando el número de dígitos decimales a mostrar, si los textos se pasarán a minúsculas o mayúsculas, si los números recibidos están en formato <a title="Sistema octal" href="http://hermeant.wordpress.com/wiki/Sistema_octal">octal</a> o <a title="Sistema hexadecimal" href="http://hermeant.wordpress.com/wiki/Sistema_hexadecimal">hexadecimal</a>, etc.</p>
<p><a id="fstreams" name="fstreams"></a></p>
<h3><span class="mw-headline">fstreams</span></h3>
<p>Tipo de flujo para el manejo de ficheros. La definición previa de <em>ostreams/istreams</em> es aplicable a este apartado. Existen tres clases (ficheros de lectura, de escritura o de lectura/escritura): <strong>ifstream</strong>,<strong>ofstream</strong> y <strong>fstream</strong>.</p>
<p>Pueden abrirse pasando al constructor los parámetros relativos a la ubicación del fichero y el modo de apertura:</p>
<table border="0">
<tbody>
<tr>
<td><a id="sstreams" name="sstreams"></a></p>
<h3><span class="mw-headline">sstreams</span></h3>
<p>Se destacan dos clases, <strong>ostringstream</strong> e <strong>istringstream</strong>. Todo lo anteriormente dicho es aplicable a estas clases. Tratan a una cadena como si de un flujo de datos se tratase. ostringstream permite elaborar una cadena de texto insertando datos cual flujo, e istringstream puede extraer la información contenida en una cadena (pasada como parámetro en su constructor) con el operador <code>&gt;&gt;</code>. Ejemplos:</p>
<div style="text-align:left;" dir="ltr">
<pre>ostringstream s;
s &lt;&lt; nombre &lt;&lt; <span class="st0"><span style="color:#666666;">","</span></span> &lt;&lt; edad &lt;&lt; <span class="st0"><span style="color:#666666;">","</span></span> &lt;&lt; estatura &lt;&lt; <span class="st0"><span style="color:#666666;">","</span></span> &lt;&lt; punto<span class="br0">(</span><span class="nu0"><span style="color:#0000dd;">5</span></span>,<span class="nu0"><span style="color:#0000dd;">6</span></span><span class="br0">)</span> &lt;&lt; endl;
<span class="kw3"><span style="color:#0000dd;">cout</span></span> &lt;&lt; s.<span class="me1"><span style="color:#00eeff;">str</span></span><span class="br0">(</span><span class="br0">)</span>;
istringstream s<span class="br0">(</span>cadena<span class="br0">)</span>;
s &gt;&gt; nombre &gt;&gt; edad &gt;&gt; estatura &gt;&gt; p;</pre>
</div>
<p><a id="Contenedores" name="Contenedores"></a></p>
<h3><span class="mw-headline">Contenedores</span></h3>
<p>Son clases plantillas especiales utilizadas para almacenar tipos de datos genéricos, sean cuales sean. Según la naturaleza del almacenado, disponemos de varios tipos:</p>
<ul>
<li>Vectores: Se definen por
<pre>vector&lt;tipo_de_dato&gt; nombre_del_vector;</pre>
<p>Equivalen a los <a class="mw-redirect" title="Array" href="http://hermeant.wordpress.com/wiki/Array">array</a> de cualquier lenguaje, con diversas salvedades. Tienen tamaño dinámico, con lo que se puede insertar elementos aún si el vector está lleno. A diferencia de los vectores clásicos a bajo nivel de C, también pueden lanzar excepciones si se accede a un elemento cuyo rango está fuera del vector en cuestión, usando, en vez del <a title="Operador" href="http://hermeant.wordpress.com/wiki/Operador">operador</a> [], el método <em>at()</em>.</li>
<li>Colas dobles: son parecidas a los vectores, pero tienen mejor eficiencia para agregar o eliminar elementos en las "puntas".</li>
<li>Listas.</li>
<li>Adaptadores de secuencia.</li>
<li>Contenedores asociativos: map y multimap, que permiten asociar una "clave" con un "valor".</li>
<li>Contenedores asociativos: set y multiset, que ofrecen solamente la condición de "pertenencia", sin la necesidad de garantizar un ordenamiento particular de los elementos que contienen.</li>
</ul>
<p><a id="Iteradores" name="Iteradores"></a></p>
<h3><span class="mw-headline">Iteradores</span></h3>
<p>Pueden considerarse como una generalización de la clase de "puntero". Un iterador es un tipo de dato que permite el recorrido y la búsqueda de elementos en los contenedores. Como las estructuras de datos (contenedores) son clases genéricas, y los operadores (algoritmos) que deben operar sobre ellas son también genéricos (funciones genéricas), Stepanov y sus colaboradores tuvieron que desarrollar el concepto de iterador como elemento o nexo de conexión entre ambos. El nuevo concepto resulta ser una especie de punteros que señalan a los diversos miembros del contenedor (punteros genéricos que como tales no existen en el lenguaje).</p>
<p><a id="Algoritmos" name="Algoritmos"></a></p>
<h3><span class="mw-headline">Algoritmos</span></h3>
<p>Combinando la utilización de templates y un estilo específico para denotar tipos y variables, la STL ofrece una serie de funciones que representan operaciones comunes, y cuyo objetivo es "parametrizar" las operaciones en que estas funciones se ven involucradas de modo que su lectura, comprensión y mantenimiento, sean más fáciles de realizar.</p>
<p>Un ejemplo es la función <tt>copy</tt>, la cual simplemente copia variables desde un lugar a otro. Más estrictamente, copia los contenidos cuyas ubicaciones están delimitadas por dos iteradores, al espacio indicado por un tercer iterador. La sintaxis es:</p>
<pre>copy (inicio_origen, fin_origen, inicio_destino);</pre>
<p>. De este modo, todos los datos que están entre inicio_origen e fin_origen, exclusive el dato ubicado en este último, son copiados a un lugar descrito o apuntado por inicio_destino.Entre las funciones más conocidas están <tt>swap (variable1, variable2)</tt>, que simplemente intercambia los valores de variable1 y variable2; <tt>max (variable1, variable2)</tt> y su símil <tt>min (variable1, variable2)</tt>, que retornan el máximo o mínimo entre dos valores; <tt>find (inicio, fin, valor)</tt> que busca valor en el espacio de variables entre inicio y fin; etcétera.</p>
<p>Los algoritmos son muy variados, algunos incluso tienen versiones específicas para operar con ciertos iteradores o contenedores, y proveen un nivel de abstracción extra que permite obtener un código más "limpio", que "describe" lo que se está haciendo, en vez de hacerlo paso a paso explícitamente.</p>
<p><a id="Diferencias_de_Tipos_respecto_de_C" name="Diferencias_de_Tipos_respecto_de_C"></a></p>
<h2><span class="mw-headline">Diferencias de Tipos respecto de C</span></h2>
<p>En C++, cualquier tipo de datos que sea <em>declarado completo</em> (<em>fully qualified</em>, en inglés) se convierte en un tipo de datos único. Las condiciones para que un tipo de datos <tt>T</tt> sea <em>declarado completo</em> son <em>a grandes rasgos</em> las siguientes:</p>
<ul>
<li>Es posible al momento de compilación conocer el espacio asociado al tipo de datos (es decir, el compilador debe conocer el resultado de <tt>sizeof(T)</tt>).</li>
<li><tt>T</tt> Tiene al menos un constructor, y un destructor, <em>bien declarados</em>.</li>
<li>Si <tt>T</tt> es un tipo compuesto, o es una clase derivada, o es la especificación de una plantilla, o cualquier combinación de las anteriores, entonces las dos condiciones establecidas previamente deben aplicar para cada tipo de dato constituyente.</li>
</ul>
<p>En general, esto significa que cualquier tipo de datos definido haciendo uso de las cabeceras completas, es un tipo de datos completo.</p>
<p>En particular, y, a diferencia de lo que ocurría en C, <strong>los tipos definidos por medio de <tt>struct</tt> o <tt>enum</tt> son tipos completos</strong>. Como tales, ahora son sujetos a sobrecarga, conversiones implícitas, etcétera.</p>
<p>Los <strong>tipos enumerados</strong>, entonces, ya no son simplemente alias para tipos enteros, sino que son tipos de datos únicos en C++. El tipo de datos <strong>bool</strong>, igualmente, pasa a ser un tipo de datos único, mientras que en C funcionaba en algunos casos como un alias para alguna clase de dato de tipo entero.</p>
<p><a id="Compiladores" name="Compiladores"></a></p>
<h2><span class="mw-headline">Compiladores</span></h2>
<p>Uno de los compiladores <a title="Software libre" href="http://hermeant.wordpress.com/wiki/Software_libre">libres</a> de C++ es el de <a title="GNU" href="http://hermeant.wordpress.com/wiki/GNU">GNU</a>, el compilador <a class="mw-redirect" title="G++" href="http://hermeant.wordpress.com/wiki/G%2B%2B">G++</a> (parte del proyecto <a class="mw-redirect" title="Gcc" href="http://hermeant.wordpress.com/wiki/Gcc">Gcc</a>, que engloba varios compiladores para distintos lenguajes), descargable desde <a class="external text" title="http://gcc.gnu.org" rel="nofollow" href="http://gcc.gnu.org/">la página web de GCC</a>.</p>
<p>Otros compiladores comunes:</p>
<ul>
<li><a class="external text" title="http://developer.apple.com/tools/macosxtools.html" rel="nofollow" href="http://developer.apple.com/tools/macosxtools.html">Apple C++</a>.</li>
<li><a class="external text" title="http://www.borland.com/bcppbuilder/" rel="nofollow" href="http://www.borland.com/bcppbuilder/">Borland C++</a></li>
<li><a class="external text" title="http://www.metrowerks.com/products/macos/" rel="nofollow" href="http://www.metrowerks.com/products/macos/">Codewarrior C++</a></li>
<li><a class="external text" title="http://www.comeaucomputing.com" rel="nofollow" href="http://www.comeaucomputing.com/">Comeau C++</a></li>
<li><a class="external text" title="http://www.cygwin.com" rel="nofollow" href="http://www.cygwin.com/">Cygwin (GNU C++)</a></li>
<li><a class="external text" title="http://www.mingw.org" rel="nofollow" href="http://www.mingw.org/">MINGW - Minimalist GNU for Windows</a>.</li>
<li><a class="external text" title="http://www.bloodshed.net" rel="nofollow" href="http://www.bloodshed.net/">Dev C++</a> (IDE que usa MinGW)</li>
<li><a class="external text" title="http://wxdsgn.sourceforge.net/" rel="nofollow" href="http://wxdsgn.sourceforge.net/">wx-Dev C++</a> (IDE basado en Dev C++)</li>
<li><a class="external text" title="http://www.digitalmars.com/" rel="nofollow" href="http://www.digitalmars.com/">Digital Mars C++</a></li>
<li><a class="external text" title="http://www.delorie.com/djgpp" rel="nofollow" href="http://www.delorie.com/djgpp">DJ Delorie's C++ development system for DOS/Windows (GNU C++)</a></li>
<li><a class="external text" title="http://www.edg.com/index.php?location=c_frontend" rel="nofollow" href="http://www.edg.com/index.php?location=c_frontend">Edison Design Group C++ Front End</a></li>
<li><a class="external text" title="http://www.ghs.com/products/optimizingC++EC++Compilers.html" rel="nofollow" href="http://www.ghs.com/products/optimizingC++EC++Compilers.html">Green Hills C++</a></li>
<li><a class="external text" title="http://h30097.www3.hp.com/cplus/" rel="nofollow" href="http://h30097.www3.hp.com/cplus/">HP C++ para UNIX</a> y <a class="external text" title="http://h71000.www7.hp.com/commercial/cplus/cplus_index.html" rel="nofollow" href="http://h71000.www7.hp.com/commercial/cplus/cplus_index.html">HP C++ para OpenVMS</a>.</li>
<li><a class="external text" title="http://www-4.ibm.com/software/ad/vacpp/" rel="nofollow" href="http://www-4.ibm.com/software/ad/vacpp/">IBM C++</a></li>
<li><a class="external text" title="http://www.intel.com/software/products/compilers/" rel="nofollow" href="http://www.intel.com/software/products/compilers/">Intel C++</a></li>
<li><a class="external text" title="http://llvm.cs.uiuc.edu/" rel="nofollow" href="http://llvm.cs.uiuc.edu/">The LLVM Compiler Infrastructure</a>.</li>
<li><a class="external text" title="http://www.mentorgraphics.com/embedded/compilers/index.html" rel="nofollow" href="http://www.mentorgraphics.com/embedded/compilers/index.html">Mentor Graphics/Microtec Research C++</a></li>
<li><a class="external text" title="http://msdn.microsoft.com/visualc" rel="nofollow" href="http://msdn.microsoft.com/visualc">Microsoft C++</a></li>
<li><a class="external text" title="http://www.microsoft.com/express/" rel="nofollow" href="http://www.microsoft.com/express/">Microsoft Visual Studio Express Editions</a></li>
<li><a class="external text" title="http://www.devtools.com/" rel="nofollow" href="http://www.devtools.com/">Paradigm C++</a></li>
<li><a class="external text" title="http://www.pgroup.com/prodworkpgcc.htm" rel="nofollow" href="http://www.pgroup.com/prodworkpgcc.htm">The Portland Group C++</a></li>
<li><a class="external text" title="http://www.sgi.com/products/software/irix/tools/c++.html" rel="nofollow" href="http://www.sgi.com/products/software/irix/tools/c++.html">SGI C++</a></li>
<li><a class="external text" title="http://www.sun.com/forte/cplusplus/index.html" rel="nofollow" href="http://www.sun.com/forte/cplusplus/index.html">Sun C++</a></li>
<li><a class="external text" title="http://developers.sun.com/prodtech/cc/" rel="nofollow" href="http://developers.sun.com/prodtech/cc/">Sun Studio</a>.</li>
<li><a class="external text" title="http://www.windriver.com/products/" rel="nofollow" href="http://www.windriver.com/products/">WindRiver's Diab C++</a></li>
</ul>
<p><a id="V.C3.A9ase_tambi.C3.A9n" name="V.C3.A9ase_tambi.C3.A9n"></a></p>
<h2><span class="mw-headline">Véase también</span></h2>
<ul>
<li><a title="Lenguaje de programación C" href="http://hermeant.wordpress.com/wiki/Lenguaje_de_programaci%C3%B3n_C">C</a></li>
<li><a class="mw-redirect" title="C Sharp" href="http://hermeant.wordpress.com/wiki/C_Sharp">C#</a></li>
<li><a title="Lenguaje de programación Java" href="http://hermeant.wordpress.com/wiki/Lenguaje_de_programaci%C3%B3n_Java">Java</a></li>
</ul>
<p><a id="Enlaces_externos" name="Enlaces_externos"></a></p>
<h2><span class="mw-headline">Enlaces externos</span></h2>
<ul>
<li><a class="external text" title="http://www.gruposyahoo.com.ar/group/DesarrolloC" rel="nofollow" href="http://www.gruposyahoo.com.ar/group/DesarrolloC">Desarrollo de Software en C/C++</a> Comunidad virtual para el intercambio de información en castellano sobre desarrollo de software en C/C++ para profesionales practicantes, docentes y estudiantes.(solo miembros)</li>
<li><a class="external text" title="http://www.cplusplus.com/" rel="nofollow" href="http://www.cplusplus.com/">cplusplus resources</a> (inglés)</li>
<li><a class="external text" title="http://cppreference.com" rel="nofollow" href="http://cppreference.com/">C/C++ Reference</a></li>
<li><a class="external text" title="http://cprogramming.com" rel="nofollow" href="http://cprogramming.com/">C/C++ Programming</a></li>
<li><a class="external text" title="http://search.cpan.org/perldoc?Inline::CPP" rel="nofollow" href="http://search.cpan.org/perldoc?Inline::CPP">Inline::CPP</a> Módulo <a title="Perl" href="http://hermeant.wordpress.com/wiki/Perl">Perl</a> en <a title="CPAN" href="http://hermeant.wordpress.com/wiki/CPAN">CPAN</a> para programar en C++ dentro de programas Perl (en inglés)</li>
<li><a class="external text" title="http://c.conclase.net/curso/index.php" rel="nofollow" href="http://c.conclase.net/curso/index.php">Curso de C++</a> Completo curso de C++ gratuito, en castellano, que además de referencia, también incluye explicaciones sencillas para aprender el lenguaje de programación</li>
</ul>
</td>
</tr>
</tbody>
</table>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hermeant.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hermeant.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hermeant.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hermeant.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hermeant.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hermeant.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hermeant.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hermeant.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hermeant.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hermeant.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hermeant.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hermeant.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hermeant.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hermeant.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hermeant.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hermeant.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hermeant.wordpress.com&amp;blog=4023234&amp;post=7&amp;subd=hermeant&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hermeant.wordpress.com/2008/06/27/programacion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59f55d6cf8c8c22192cc694826477646?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">hermeant</media:title>
		</media:content>
	</item>
		<item>
		<title>REDES</title>
		<link>http://hermeant.wordpress.com/2008/06/27/dredes/</link>
		<comments>http://hermeant.wordpress.com/2008/06/27/dredes/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 18:46:05 +0000</pubDate>
		<dc:creator>hermeant</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://hermeant.wordpress.com/?p=6</guid>
		<description><![CDATA[Una red de computadoras (también llamada red de ordenadores o red informática) es un conjunto de equipos (computadoras y/o dispositivos) conectados por medio de cables, señales, ondas o cualquier otro método de transporte de datos, que comparten información (archivos), recursos (CD-ROM, impresoras, etc.) y servicios (acceso a internet, e-mail, chat, juegos), etc. Para simplificar la [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hermeant.wordpress.com&amp;blog=4023234&amp;post=6&amp;subd=hermeant&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Una <strong>red de computadoras</strong> (también llamada <strong>red de ordenadores</strong> o <strong>red informática</strong>) es un conjunto de equipos (<a title="Computadora" href="http://hermeant.wordpress.com/wiki/Computadora">computadoras</a> y/o <a title="Dispositivo" href="http://hermeant.wordpress.com/wiki/Dispositivo">dispositivos</a>) conectados por medio de cables, señales, ondas o cualquier otro método de transporte de datos, que comparten <a title="Información" href="http://hermeant.wordpress.com/wiki/Informaci%C3%B3n">información</a> (archivos), recursos (<a title="CD-ROM" href="http://hermeant.wordpress.com/wiki/CD-ROM">CD-ROM</a>, impresoras, etc.) y servicios (<a class="mw-redirect" title="Acceso a internet" href="http://hermeant.wordpress.com/wiki/Acceso_a_internet">acceso a internet</a>, <a class="mw-redirect" title="E-mail" href="http://hermeant.wordpress.com/wiki/E-mail">e-mail</a>, <a title="Chat" href="http://hermeant.wordpress.com/wiki/Chat">chat</a>, <a title="Videojuego" href="http://hermeant.wordpress.com/wiki/Videojuego">juegos</a>), etc.</p>
<p>Para simplificar la comunicación entre programas (aplicaciones) de distintos equipos, se definió el <a title="Modelo OSI" href="http://hermeant.wordpress.com/wiki/Modelo_OSI">Modelo OSI</a> por la <a title="Organización Internacional para la Estandarización" href="http://hermeant.wordpress.com/wiki/Organizaci%C3%B3n_Internacional_para_la_Estandarizaci%C3%B3n">ISO</a>, el cual especifica 7 distintas capas de <a title="Abstracción" href="http://hermeant.wordpress.com/wiki/Abstracci%C3%B3n">abstracción</a>. Con ello, cada capa desarrolla una función específica con un <a class="mw-redirect" title="Alcance" href="http://hermeant.wordpress.com/wiki/Alcance">alcance</a> definido.</p>
<table id="toc" class="toc" border="0" summary="Tabla de contenidos">
<tbody>
<tr>
<td>
<div id="toctitle">
<h2>Tabla de contenidos</h2>
</div>
<ul>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#Intranet"><span class="tocnumber">1</span> <span class="toctext">Intranet</span></a></li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#Clasificaci.C3.B3n_de_Redes"><span class="tocnumber">2</span> <span class="toctext">Clasificación de Redes</span></a></li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#Protocolos_de_redes"><span class="tocnumber">3</span> <span class="toctext">Protocolos de redes</span></a>
<ul>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Est.C3.A1ndares_de_redes"><span class="tocnumber">3.1</span> <span class="toctext">Estándares de redes</span></a></li>
</ul>
</li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#V.C3.A9ase_tambi.C3.A9n"><span class="tocnumber">4</span> <span class="toctext">Véase también</span></a>
<ul>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Algunas_Tecnolog.C3.ADas_Relacionadas"><span class="tocnumber">4.1</span> <span class="toctext">Algunas Tecnologías Relacionadas</span></a></li>
</ul>
</li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#Componentes_b.C3.A1sicos_de_las_redes_de_ordenadores"><span class="tocnumber">5</span> <span class="toctext">Componentes básicos de las redes de ordenadores</span></a>
<ul>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Computadoras"><span class="tocnumber">5.1</span> <span class="toctext">Computadoras</span></a></li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Tipos_de_sitios_de_trabajo"><span class="tocnumber">5.2</span> <span class="toctext">Tipos de sitios de trabajo</span></a></li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Tipos_de_servidores"><span class="tocnumber">5.3</span> <span class="toctext">Tipos de servidores</span></a></li>
</ul>
</li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#Construcci.C3.B3n_de_una_red_de_ordenadores"><span class="tocnumber">6</span> <span class="toctext">Construcción de una red de ordenadores</span></a>
<ul>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Una_red_simple"><span class="tocnumber">6.1</span> <span class="toctext">Una red simple</span></a></li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Redes_pr.C3.A1cticas"><span class="tocnumber">6.2</span> <span class="toctext">Redes prácticas</span></a></li>
</ul>
</li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#Tipos_de_redes"><span class="tocnumber">7</span> <span class="toctext">Tipos de redes</span></a></li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#Tipos_de_WAN"><span class="tocnumber">8</span> <span class="toctext">Tipos de WAN</span></a></li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#Red_interna"><span class="tocnumber">9</span> <span class="toctext">Red interna</span></a></li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#Internet"><span class="tocnumber">10</span> <span class="toctext">Internet</span></a></li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#Intranet_2"><span class="tocnumber">11</span> <span class="toctext">Intranet</span></a></li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#Extranet"><span class="tocnumber">12</span> <span class="toctext">Extranet</span></a></li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#Clasificaci.C3.B3n_de_las_redes_de_ordenadores"><span class="tocnumber">13</span> <span class="toctext">Clasificación de las redes de ordenadores</span></a>
<ul>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Por_capa_de_red"><span class="tocnumber">13.1</span> <span class="toctext">Por capa de red</span></a></li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Por_la_escala"><span class="tocnumber">13.2</span> <span class="toctext">Por la escala</span></a></li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Por_m.C3.A9todo_de_la_conexi.C3.B3n"><span class="tocnumber">13.3</span> <span class="toctext">Por método de la conexión</span></a></li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Por_la_relaci.C3.B3n_funcional"><span class="tocnumber">13.4</span> <span class="toctext">Por la relación funcional</span></a></li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Por_topolog.C3.ADa_de_la_red"><span class="tocnumber">13.5</span> <span class="toctext">Por topología de la red</span></a></li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Por_los_servicios_proporcionados"><span class="tocnumber">13.6</span> <span class="toctext">Por los servicios proporcionados</span></a></li>
<li class="toclevel-2"><a href="http://hermeant.wordpress.com/wp-admin/#Por_protocolo"><span class="tocnumber">13.7</span> <span class="toctext">Por protocolo</span></a></li>
</ul>
</li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#V.C3.A9ase_tambi.C3.A9n_2"><span class="tocnumber">14</span> <span class="toctext">Véase también</span></a></li>
<li class="toclevel-1"><a href="http://hermeant.wordpress.com/wp-admin/#Bibliograf.C3.ADa"><span class="tocnumber">15</span> <span class="toctext">Bibliografía</span></a></li>
</ul>
</td>
</tr>
</tbody>
</table>
<p><a id="Intranet" name="Intranet"></a></p>
<h2><span class="mw-headline">Intranet</span></h2>
<div class="noprint" style="margin:0 0 0.2ex 1em;"><em><span style="font-size:87%;"><span style="font-size:small;">Artículo principal:</span></span> <a title="Intranet" href="http://hermeant.wordpress.com/wiki/Intranet">Intranet</a></em></div>
<p>Una Intranet es una red privada que la tecnología Internet usó como arquitectura elemental. Una red interna se construye usando los protocolos TCP/IP para comunicación de Internet, que pueden ejecutarse en muchas de las plataformas de hardware y en proyectos por cable. El hardware fundamental no es lo que construye una Intranet, lo que importa son los protocolos del software. Las Intranets pueden coexistir con otra tecnología de red de área local. En muchas compañías, los &#8220;sistemas patrimoniales&#8221; existentes que incluyen sistemas centrales, redes Novell, mini &#8211; computadoras y varias bases de datos, están integrados en un Intranet. Una amplia variedad de herramientas permite que esto ocurra. El guión de la Interfaz Común de Pasarela (CGI) se usa a menudo para acceder a bases de datos patrimoniales desde una Intranet. El lenguaje de programación Java también puede usarse para acceder a bases de datos patrimoniales.</p>
<p>Una Intranet o una Red Interna se limita en alcance a una sola organización o entidad. Generalmente ofrecen servicios como <a class="mw-redirect" title="HTTP" href="http://hermeant.wordpress.com/wiki/HTTP">HTTP</a>, <a class="mw-redirect" title="FTP" href="http://hermeant.wordpress.com/wiki/FTP">FTP</a>, <a class="mw-redirect" title="SMTP" href="http://hermeant.wordpress.com/wiki/SMTP">SMTP</a>, <a class="mw-redirect" title="POP3" href="http://hermeant.wordpress.com/wiki/POP3">POP3</a> y otros de uso general.</p>
<p><a id="Clasificaci.C3.B3n_de_Redes" name="Clasificaci.C3.B3n_de_Redes"></a></p>
<h2><span class="mw-headline">Clasificación de Redes</span></h2>
<ul>
<li>Por <a class="mw-redirect" title="Alcance" href="http://hermeant.wordpress.com/wiki/Alcance">alcance</a>:
<ul>
<li><a class="mw-redirect" title="Red de área personal" href="http://hermeant.wordpress.com/wiki/Red_de_%C3%A1rea_personal">Red de área personal</a> (<em>PAN</em>)</li>
<li><a title="Red de área local" href="http://hermeant.wordpress.com/wiki/Red_de_%C3%A1rea_local">Red de área local</a> (<em>LAN</em>)</li>
<li><a class="new" title="Red de área de campus (aún no redactado)" href="http://hermeant.wordpress.com/w/index.php?title=Red_de_%C3%A1rea_de_campus&amp;action=edit&amp;redlink=1">Red de área de campus</a> (<em>CAN</em>)</li>
<li><a class="mw-redirect" title="Red de área metropolitana" href="http://hermeant.wordpress.com/wiki/Red_de_%C3%A1rea_metropolitana">Red de área metropolitana</a> (<em>MAN</em>)</li>
<li><a class="mw-redirect" title="Red de área amplia" href="http://hermeant.wordpress.com/wiki/Red_de_%C3%A1rea_amplia">Red de área amplia</a> (<em>WAN</em>)</li>
</ul>
</li>
</ul>
<ul>
<li>Por <a title="Método" href="http://hermeant.wordpress.com/wiki/M%C3%A9todo">método</a> de la <a title="Conexión" href="http://hermeant.wordpress.com/wiki/Conexi%C3%B3n">conexión</a>:
<ul>
<li>Medios guiados: <a title="Cable coaxial" href="http://hermeant.wordpress.com/wiki/Cable_coaxial">cable coaxial</a>, <a class="mw-redirect" title="Par trenzado" href="http://hermeant.wordpress.com/wiki/Par_trenzado">cable de par trenzado</a>, <a title="Fibra óptica" href="http://hermeant.wordpress.com/wiki/Fibra_%C3%B3ptica">fibra óptica</a> y otros tipos de <a title="Cableado estructurado" href="http://hermeant.wordpress.com/wiki/Cableado_estructurado">cables</a>.</li>
<li>Medios no guiados: <a title="Red por radio" href="http://hermeant.wordpress.com/wiki/Red_por_radio">radio</a>, <a title="Red por infrarrojos" href="http://hermeant.wordpress.com/wiki/Red_por_infrarrojos">infrarrojos</a>, <a title="Red por microondas" href="http://hermeant.wordpress.com/wiki/Red_por_microondas">microondas</a>, <a title="Red por láser" href="http://hermeant.wordpress.com/wiki/Red_por_l%C3%A1ser">láser</a> y otras <a title="Red inalámbrica" href="http://hermeant.wordpress.com/wiki/Red_inal%C3%A1mbrica">redes inalámbricas</a>.</li>
</ul>
</li>
</ul>
<ul>
<li>Por <a class="new" title="Relación funcional (aún no redactado)" href="http://hermeant.wordpress.com/w/index.php?title=Relaci%C3%B3n_funcional&amp;action=edit&amp;redlink=1">relación funcional</a>:
<ul>
<li><a title="Cliente-servidor" href="http://hermeant.wordpress.com/wiki/Cliente-servidor">Cliente-servidor</a></li>
<li><a title="Peer-to-peer" href="http://hermeant.wordpress.com/wiki/Peer-to-peer">Igual-a-Igual</a> (<a class="mw-redirect" title="P2p" href="http://hermeant.wordpress.com/wiki/P2p">p2p</a>)</li>
</ul>
</li>
</ul>
<div class="thumb tright">
<div class="thumbinner" style="width:202px;"><a class="image" title="Arquitecturas de red" href="http://hermeant.wordpress.com/wiki/Imagen:Topolog%C3%ADa_de_red.png"><img class="thumbimage" src="http://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Topolog%C3%ADa_de_red.png/200px-Topolog%C3%ADa_de_red.png" border="0" alt="Arquitecturas de red" width="200" height="216" /></a></div>
<div class="thumbcaption">
<div class="magnify"><a class="internal" title="Aumentar" href="http://hermeant.wordpress.com/wiki/Imagen:Topolog%C3%ADa_de_red.png"><img src="http://hermeant.wordpress.com/skins-1.5/common/images/magnify-clip.png" alt="" width="15" height="11" /></a></div>
<p>Arquitecturas de red</p></div>
</div>
<ul>
<li>Por <a title="Topolog�a de red" href="http://hermeant.wordpress.com/wiki/Topolog%C3%ADa_de_red">Topología de red</a>:
<ul>
<li><a title="Red en bus" href="http://hermeant.wordpress.com/wiki/Red_en_bus">Red de bus</a></li>
<li><a title="Red en estrella" href="http://hermeant.wordpress.com/wiki/Red_en_estrella">Red de estrella</a></li>
<li><a title="Red en anillo" href="http://hermeant.wordpress.com/wiki/Red_en_anillo">Red de anillo</a> (o doble anillo)</li>
<li><a title="Topolog�a en malla" href="http://hermeant.wordpress.com/wiki/Topolog%C3%ADa_en_malla">Red en malla</a> (o totalmente conexa)</li>
<li><a title="Red en árbol" href="http://hermeant.wordpress.com/wiki/Red_en_%C3%A1rbol">Red en árbol</a></li>
<li>Red Mixta (cualquier combinación de las anteriores)</li>
</ul>
</li>
</ul>
<ul>
<li>Por la <a class="new" title="Direccionalidad (aún no redactado)" href="http://hermeant.wordpress.com/w/index.php?title=Direccionalidad&amp;action=edit&amp;redlink=1">direccionalidad</a> de los <a class="mw-redirect" title="Datos" href="http://hermeant.wordpress.com/wiki/Datos">datos</a> (tipos de <a class="mw-redirect" title="Transmisión" href="http://hermeant.wordpress.com/wiki/Transmisi%C3%B3n">transmisión</a>)
<ul>
<li><em>Simplex</em> (unidireccionales), un <a title="ETD" href="http://hermeant.wordpress.com/wiki/ETD">Equipo Terminal de Datos</a> transmite y otro recibe. (p.e. <a title="Streaming" href="http://hermeant.wordpress.com/wiki/Streaming">Streaming</a>)</li>
<li><em>Half-Duplex</em> (bidireccionales), sólo un equipo transmite a la vez. También se llama <em>Semi-Duplex</em>.(p.e. Una <a title="Comunicación" href="http://hermeant.wordpress.com/wiki/Comunicaci%C3%B3n">comunicación</a> por equipos de radio, si los equipos no son <em>full dúplex</em>, uno no podría transmitir (hablar) si la otra persona está también transmitiendo (hablando) porque su equipo estaría recibiendo (escuchando) en ese momento).</li>
<li><em>Full-Duplex</em> (bidireccionales) , ambos pueden transmitir y recibir a la vez una misma información. (p.e. <a title="Videoconferencia" href="http://hermeant.wordpress.com/wiki/Videoconferencia">Video-Conferencia</a>)</li>
</ul>
</li>
</ul>
<p><a id="Protocolos_de_redes" name="Protocolos_de_redes"></a></p>
<h2><span class="mw-headline">Protocolos de redes</span></h2>
<div class="noprint" style="margin:0 0 0.2ex 1em;"><em><span style="font-size:87%;"><span style="font-size:small;">Artículo principal:</span></span> <a title="Protocolo de red" href="http://hermeant.wordpress.com/wiki/Protocolo_de_red">Protocolo de red</a></em></div>
<p>El Protocolo de red o también Protocolo de Comunicación es el conjunto de reglas que especifican el intercambio de <a title="Dato" href="http://hermeant.wordpress.com/wiki/Dato">datos</a> u órdenes durante la <a title="Comunicación" href="http://hermeant.wordpress.com/wiki/Comunicaci%C3%B3n">comunicación</a> entre las entidades que forman parte de una red.</p>
<p><a id="Est.C3.A1ndares_de_redes" name="Est.C3.A1ndares_de_redes"></a></p>
<h3><span class="mw-headline">Estándares de redes</span></h3>
<ul>
<li><a title="IEEE 802.3" href="http://hermeant.wordpress.com/wiki/IEEE_802.3">IEEE 802.3</a>, estándar para Ethernet</li>
<li><a class="mw-redirect" title="IEEE 802.5" href="http://hermeant.wordpress.com/wiki/IEEE_802.5">IEEE 802.5</a>, estándar para Token Ring</li>
<li><a title="IEEE 802.11" href="http://hermeant.wordpress.com/wiki/IEEE_802.11">IEEE 802.11</a>, estándar para Wi-Fi</li>
<li><a title="IEEE 802.15" href="http://hermeant.wordpress.com/wiki/IEEE_802.15">IEEE 802.15</a>, estándar para Bluetooth</li>
</ul>
<p><a id="V.C3.A9ase_tambi.C3.A9n" name="V.C3.A9ase_tambi.C3.A9n"></a></p>
<h2><span class="mw-headline">Véase también</span></h2>
<ul>
<li><a title="Puente de red" href="http://hermeant.wordpress.com/wiki/Puente_de_red">Bridges</a></li>
<li><a class="mw-redirect" title="Router" href="http://hermeant.wordpress.com/wiki/Router">Router</a></li>
<li><a class="mw-redirect" title="Switch" href="http://hermeant.wordpress.com/wiki/Switch">Switch</a></li>
<li><a title="Hub" href="http://hermeant.wordpress.com/wiki/Hub">Hub</a></li>
</ul>
<p><a id="Algunas_Tecnolog.C3.ADas_Relacionadas" name="Algunas_Tecnolog.C3.ADas_Relacionadas"></a></p>
<h3><span class="mw-headline">Algunas Tecnologías Relacionadas</span></h3>
<div class="thumb tright">
<div class="thumbinner" style="width:202px;"><a class="image" title="Red Token Ring." href="http://hermeant.wordpress.com/wiki/Imagen:Tokenring.png"><span style="font-size:x-small;"><img class="thumbimage" src="http://upload.wikimedia.org/wikipedia/commons/thumb/1/1b/Tokenring.png/200px-Tokenring.png" border="0" alt="Red Token Ring." width="200" height="182" /></span></a></div>
<div class="thumbcaption">
<div class="magnify"><a class="internal" title="Aumentar" href="http://hermeant.wordpress.com/wiki/Imagen:Tokenring.png"><img src="http://hermeant.wordpress.com/skins-1.5/common/images/magnify-clip.png" alt="" width="15" height="11" /></a></div>
<p>Red Token Ring.</p></div>
</div>
<ul>
<li><a title="AppleTalk" href="http://hermeant.wordpress.com/wiki/AppleTalk">AppleTalk</a></li>
<li><a title="ATM" href="http://hermeant.wordpress.com/wiki/ATM">ATM</a></li>
<li><a title="Bluetooth" href="http://hermeant.wordpress.com/wiki/Bluetooth">Bluetooth</a></li>
<li><a title="DECnet" href="http://hermeant.wordpress.com/wiki/DECnet">DECnet</a></li>
<li><a title="Ethernet" href="http://hermeant.wordpress.com/wiki/Ethernet">Ethernet</a></li>
<li><a class="mw-redirect" title="FDDI" href="http://hermeant.wordpress.com/wiki/FDDI">FDDI</a></li>
<li><a title="Frame Relay" href="http://hermeant.wordpress.com/wiki/Frame_Relay">Frame Relay</a></li>
<li><a title="HIPPI" href="http://hermeant.wordpress.com/wiki/HIPPI">HIPPI</a></li>
<li><a title="Point-to-Point Protocol" href="http://hermeant.wordpress.com/wiki/Point-to-Point_Protocol">PPP</a></li>
<li><a title="HDLC" href="http://hermeant.wordpress.com/wiki/HDLC">HDLC</a></li>
<li><a title="FidoNet" href="http://hermeant.wordpress.com/wiki/FidoNet">FidoNet</a></li>
</ul>
<table class="plainlinks ambox ambox-notice" border="0">
<tbody>
<tr>
<td class="ambox-image">
<div style="width:52px;"><a class="image" title="Traducción.png" href="http://hermeant.wordpress.com/wiki/Imagen:Traducci%C3%B3n.png"><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Traducci%C3%B3n.png/50px-Traducci%C3%B3n.png" border="0" alt="" width="50" height="36" /></a></div>
</td>
<td class="ambox-text">Esta página está siendo traducida del idioma <strong>Inglés</strong> a partir del artículo <em><a class="extiw" title="computer_network" href="http://en.wikipedia.org/wiki/computer_network">computer network</a></em>, razón por la cual puede haber lagunas de contenidos, errores sintácticos o escritos sin traducir.<br />
<em>Puedes colaborar con <a title="Wikipedia" href="http://hermeant.wordpress.com/wiki/Wikipedia">Wikipedia</a> <a class="external text" title="http://es.wikipedia.org/w/index.php?title=Red_de_computadoras&amp;action=edit" rel="nofollow" href="http://es.wikipedia.org/w/index.php?title=Red_de_computadoras&amp;action=edit">continuando con la traducción</a> desde el <a class="extiw" title="computer_network" href="http://en.wikipedia.org/wiki/computer_network">artículo original</a></em></td>
<td class="ambox-imageright">
<div style="width:52px;"><a class="image" title="ISO 639 Icon en.svg" href="http://hermeant.wordpress.com/wiki/Imagen:ISO_639_Icon_en.svg"><img src="http://upload.wikimedia.org/wikipedia/commons/thumb/e/ef/ISO_639_Icon_en.svg/50px-ISO_639_Icon_en.svg.png" border="0" alt="" width="50" height="23" /></a></div>
</td>
</tr>
</tbody>
</table>
<p>Para la disciplina científica y de la ingeniería que estudia las redes de ordenadores, ver el establecimiento de una red de la computadora. Una red de ordenadores son computadoras múltiples conectadas, junto con un sistema de telecomunicación con el fin de comunicarse y de compartir recursos.</p>
<p>Expertos en la materia de discusión del establecimiento de una red si dos computadoras que están conectadas juntas con una cierta forma de medio de comunicaciones constituyen una red. Por lo tanto, algo trabaja el estado que una red requiere tres computadoras conectadas. por ejemplo, “telecomunicaciones: El glosario de la telecomunicación llama” estados que una red de ordenadores es “una red de los nodos de proceso de datos que se interconectan con el fin de la comunicación de datos”, del término “red” que es definida en el mismo documento que “una interconexión de tres o más entidades que se comunican”. Una computadora conectada con un dispositivo (e.g., networked a una impresora vía un acoplamiento de <a title="Ethernet" href="http://hermeant.wordpress.com/wiki/Ethernet">Ethernet</a>) puede también representar una red de ordenadores, aunque este artículo no trata esta configuración.</p>
<p>Este artículo utiliza la definición que requiere dos o más computadoras que se conectarán juntas con la forma una red. Las mismas funciones básicas están generalmente presentes en este caso como son números más grandes de computadoras conectadas.</p>
<p><a id="Componentes_b.C3.A1sicos_de_las_redes_de_ordenadores" name="Componentes_b.C3.A1sicos_de_las_redes_de_ordenadores"></a></p>
<h2><span class="mw-headline">Componentes básicos de las redes de ordenadores</span></h2>
<p><a id="Computadoras" name="Computadoras"></a></p>
<h3><span class="mw-headline">Computadoras</span></h3>
<p>Muchos de los componentes de una red media son las computadoras individuales, que son generalmente sitios de trabajo (incluyendo ordenadores personales) o servidores.</p>
<p><a id="Tipos_de_sitios_de_trabajo" name="Tipos_de_sitios_de_trabajo"></a></p>
<h3><span class="mw-headline">Tipos de sitios de trabajo</span></h3>
<p>Hay muchos tipos de sitios de trabajo que se pueden incorporar en una red particular, algo de la cual tiene exhibiciones high-end, las CPU múltiples, las cantidades grandes de RAM, las grandes cantidades de espacio de almacenamiento en disco duro, u otros componentes requeridos para las tareas de proceso de datos especiales, los gráficos, u otros usos intensivos del recurso. (Véase también la computadora de red).</p>
<p><a id="Tipos_de_servidores" name="Tipos_de_servidores"></a></p>
<h3><span class="mw-headline">Tipos de servidores</span></h3>
<p>En las siguientes listas, hay algunos tipos comunes de servidores y de su propósito.</p>
<ul>
<li><strong>Servidor de archivo</strong>: almacena varios tipos de archivos y los distribuye a otros clientes en la red.</li>
</ul>
<ul>
<li><strong>Servidor de impresiones</strong>: controla y maneja una o más impresoras y acepta trabajos de impresión de otros clientes de la red, poniendo en cola los trabajos de impresión (Aunque también puede cambiar la prioridad de las diferentes impresiones), y realizando la mayoría o todas las otras funciones que un sitio de trabajo se realizaría para lograr una tarea de impresión si la impresora fue conectada directamente con el puerto de impresora del sitio de trabajo.</li>
</ul>
<ul>
<li><strong><a title="Servidor de correo" href="http://hermeant.wordpress.com/wiki/Servidor_de_correo">Servidor de correo</a></strong>: almacenan, envían, reciben, enrutan, y realizan otras operaciones relacionadas con email para otros clientes en la red.</li>
</ul>
<ul>
<li><strong>Servidor de fax</strong>: almacenan, envían, reciben, enrutan, y realizan otras funciones necesarias para la transmisión, la recepción, y la distribución apropiadas de los <a title="Fax" href="http://hermeant.wordpress.com/wiki/Fax">fax</a>.</li>
</ul>
<ul>
<li><strong>Servidor de la telefonía</strong>: realiza funciones relacionadas con la telefonía, tales como contestador automático, realizando las funciones de un sistema interactivo de la respuesta de la voz, almacenando los mensajes de voz, encaminando las llamadas, también controla la red o el Internet (e.j., entrada excesiva del IP de la voz (VoIP),), etc.</li>
</ul>
<ul>
<li><strong>Proxy server</strong>: realiza un cierto tipo de función a nombre de otros clientes en la red para aumentar el funcionamiento de ciertas operaciones (e.j., prefetching y depositar documentos u otros datos que se soliciten muy frecuentemente), también <em>sirve</em> seguridad, esto es, tiene un <a title="Firewall" href="http://hermeant.wordpress.com/wiki/Firewall">Firewall</a>. Permite administrar el acceso a internet en una Red de computadoras permitiendo o negando el acceso a diferentes web sites</li>
</ul>
<ul>
<li><strong>Servidor del acceso alejado (RAS)</strong>: controla las líneas de módem de los monitores u otros canales de comunicación de la red para que las peticiones conecten con la red de una posición remota, respuestas la llamada telefónica entrante o reconocen la petición de la red, y realizan los chequeos necesarios de la seguridad y otros procedimientos necesarios para registrar a un usuario sobre la red.</li>
</ul>
<ul>
<li><strong>Servidor del uso</strong>: realiza la parte de la lógica de la informática o del negocio de un uso del cliente, aceptando las instrucciones para que las operaciones se realicen de un sitio de trabajo y sirviendo los resultados de nuevo al sitio de trabajo, mientras que el sitio de trabajo realiza el interfaz operador o la porción del GUI del proceso (es decir, la lógica de la presentación) que se requiere para trabajar correctamente.</li>
</ul>
<ul>
<li><strong><a title="Servidor web" href="http://hermeant.wordpress.com/wiki/Servidor_web">Servidor web</a></strong>: almacena documentos HTML, imágenes, archivos de texto, escrituras, y demás material Web compuesto por datos (conocidos colectivamente como contenido), y distribuye este contenido a clientes que la piden en la red.</li>
</ul>
<ul>
<li><strong>Servidor de reserva</strong>: tiene el software de reserva de la red instalado y tiene cantidades grandes de almacenamiento de la red en discos duros u otras formas del almacenamiento (cinta, etc.) disponibles para que se utilice con el fin de asegurarse de que la pérdida de un servidor principal no afecte a la red. Esta técnica también es denominada <em>clustering</em>.</li>
</ul>
<ul>
<li><strong>Impresoras</strong>: muchas impresoras son capaces de actuar como parte de una red de ordenadores sin ningún otro dispositivo, tal como un <em><strong>&#8220;print server&#8221;</strong></em>, a actuar como intermediario entre la impresora y el dispositivo que está solicitando un trabajo de impresión de ser terminado.</li>
</ul>
<ul>
<li><strong>Clientes finos</strong>: muchas redes utilizan a clientes finos en vez de sitios de trabajo o para la entrada de datos y exhiben propósitos o en algunos casos donde el uso funciona enteramente en el servidor.</li>
</ul>
<ul>
<li><strong>Otros dispositivos</strong>: hay muchos otros tipos de dispositivos que se puedan utilizar para construir una red, muchos de los cuales requieren una comprensión de conceptos más avanzados del establecimiento de una red de la computadora antes de que puedan ser entendidos fácilmente (e.g., los cubos, las rebajadoras, los puentes, los interruptores, los cortafuegos del hardware, etc.). En las redes caseras y móviles, que conecta la electrónica de consumidor los dispositivos tales como consolas vídeo del juego está llegando a ser cada vez más comunes.</li>
</ul>
<p><a id="Construcci.C3.B3n_de_una_red_de_ordenadores" name="Construcci.C3.B3n_de_una_red_de_ordenadores"></a></p>
<h2><span class="mw-headline">Construcción de una red de ordenadors</span></h2>
<p><a id="Una_red_simple" name="Una_red_simple"></a></p>
<h3><span class="mw-headline">Una red simple</span></h3>
<p>Una red de computadoras simple se puede construir a partir de dos computadoras agregando un adaptador de la red (controlador de interfaz de red (NIC) a cada computadora y conectándolas luego mediante un cable especial llamado &#8220;cable cruzado&#8221; (el cual es un cable de red con algunos cables invertidos, para evitar el uso de un router o switch). Este tipo de red es útil para transferir información entre dos computadoras que normalmente no están conectadas entre sí por una conexión de red permanente o para usos caseros básicos del establecimiento de una red. Alternativamente, una red entre dos computadoras se puede establecer sin hardware dedicado adicional usando una conexión estándar tal como el puerto serial RS-232 en ambas computadoras, conectándolas entre sí vía un cable especial cruzado nulo del módem.</p>
<p><a id="Redes_pr.C3.A1cticas" name="Redes_pr.C3.A1cticas"></a></p>
<h3><span class="mw-headline">Redes prácticas</span></h3>
<p>Redes prácticas constan generalmente de más de dos computadoras interconectadas y generalmente requieren dispositivos especiales además del controlador de interfaz de red con el cual cada computadora necesita estar equipada. Ejemplos de algunos de estos dispositivos especiales son los concentradores (hubs), multiplexores (switches) y enrutadores (routers).</p>
<p><a id="Tipos_de_redes" name="Tipos_de_redes"></a></p>
<h2><span class="mw-headline">Tipos de redes</span></h2>
<p>Abajo está una lista de los tipos más comunes de redes de ordenadores</p>
<ul>
<li><strong>Red pública</strong>: una red publica se define como una red que puede usar cualquier persona y no como las redes que están configuradas con clave de acceso personal. Es una red de computadoras interconectados, capaz de compartir información y que permite comunicar a usuarios sin importar su ubicación geográfica.</li>
</ul>
<ul>
<li><strong>Red privada</strong>: una red privada se definiría como una red que puede usarla una sola persona y que están configuradas con clave de acceso personal.</li>
</ul>
<ul>
<li><strong>Red de área Personal (PAN)</strong>: (Personal Area Network) es una red de ordenadores usada para la comunicación entre los dispositivos de la computadora (teléfonos incluyendo las ayudantes digitales personales) cerca de una persona. Los dispositivos pueden o no pueden pertenecer a la persona en cuestión. El alcance de una PAN es típicamente algunos metros. Las PAN se pueden utilizar para la comunicación entre los dispositivos personales de ellos mismos (comunicación del intrapersonal), o para conectar con una red de alto nivel y el Internet (un up link). Las redes personales del área se pueden conectar con cables con los buses de la computadora tales como USB y FireWire. Una red personal sin hilos del área (WPAN) se puede también hacer posible con tecnologías de red tales como IrDA y Bluetooth.</li>
</ul>
<ul>
<li><strong>Red de área local (LAN)</strong>: una red que se limita a un área especial relativamente pequeña tal como un cuarto, un solo edificio, una nave, o un avión. Las redes de área local a veces se llaman una sola red de la localización. Nota: Para los propósitos administrativos, LANs grande se divide generalmente en segmentos lógicos más pequeños llamados los Workgroups. Un Workgroups es un grupo de las computadoras que comparten un sistema común de recursos dentro de un LAN.</li>
</ul>
<ul>
<li><strong>Red del área del campus (CAN)</strong>: Se deriva a una red que conecta dos o más LANs los cuales deben estar conectados en un área geográfica específica tal como un campus de universidad, un complejo industrial o una base militar.</li>
<li><strong>Red de área metropolitana (MAN)</strong>: una red que conecta las redes de un área dos o más locales juntos pero no extiende más allá de los límites de la ciudad inmediata, o del área metropolitana. Las rebajadoras múltiples, los interruptores y los cubos están conectados para crear a una MAN.</li>
</ul>
<ul>
<li><strong>Red de área amplia (WAN)</strong>: es una red de comunicaciones de datos que cubre un área geográfica relativamente amplia y que utiliza a menudo las instalaciones de transmisión proporcionadas por los portadores comunes, tales como compañías del teléfono. Las tecnologías WAN funcionan generalmente en las tres capas más bajas del Modelo de referencia OSI: la capa física, la capa de transmisión de datos, y la capa de red.</li>
</ul>
<p><a id="Tipos_de_WAN" name="Tipos_de_WAN"></a></p>
<h2><span class="mw-headline">Tipos de WAN</span></h2>
<ul>
<li><strong>Centralizado</strong>: Un WAN centralizado consiste en una computadora central que esté conectada con las terminales nodos y/u otros tipos de dispositivos del Terminal.</li>
<li><strong>Distribuido</strong>: Un WAN distribuido consiste en dos o más computadoras en diversas localizaciones y puede también incluir conexiones a los terminales nodos y a otros tipos de dispositivos del Terminal.</li>
</ul>
<p><a id="Red_interna" name="Red_interna"></a></p>
<h2><span class="mw-headline">Red interna</span></h2>
<p>Dos o más redes o segmentos de la red conectados con los dispositivos que funcionan en la capa 3 (la capa de la “red”) del modelo de la referencia básica de la OSI, tal como un router. Nota: Cualquier interconexión entre las redes del público, privadas, comerciales, industriales, o gubernamentales se puede también definir como red interna.</p>
<p>Estas redes pueden comunicarse al exterior utilizando NAT.</p>
<p><a id="Internet" name="Internet"></a></p>
<h2><span class="mw-headline">Internet</span></h2>
<p>Una red interna específica, consiste en una interconexión mundial de las redes gubernamentales, académicas, públicas, y privadas basadas sobre el Advanced Research Projects Agency Network (ARPANET) desarrollado por ARPA del departamento de los EE.UU. de la defensa también a casa al World Wide Web (WWW) y designado el “Internet” con un capital “I” para distinguirlo de otros internetworks genéricos</p>
<p><a id="Intranet_2" name="Intranet_2"></a></p>
<h2><span class="mw-headline">Intranet</span></h2>
<p>Una red interna que se limitan en alcance a una sola organización o entidad y que utilicen el TCP/IP Protocol Suite, el HTTP, el FTP, y los otros protocolos y software de red de uso general en el Internet. Nota: Intranets se puede también categorizar como el LAN, CAN, MAN, WAN</p>
<p><a id="Extranet" name="Extranet"></a></p>
<h2><span class="mw-headline">Extranet</span></h2>
<p>Una red interna que se limitan en alcance a una sola organización o entidad pero que también han limitado conexiones a las redes de una o más generalmente, pero no necesariamente, organizaciones confiadas o entidades .</p>
<p>Nota: Técnico, un extranet se puede también categorizar como CAN, MAN, WAN, u otro tipo de red, aunque, por la definición, un extranet no puede consistir en un solo LAN, porque un extranet debe tener por lo menos una conexión con una red exterior. Intranets y los extranets pueden o no pueden tener conexiones al Internet. Si está conectado con el Internet, el Intranet o el extranet se protege normalmente contra ser alcanzado del Internet sin la autorización apropiada. El Internet en sí mismo no se considera ser una parte del Intranet o del extranet, aunque el Internet puede servir como portal para el acceso a las porciones de un extranet.</p>
<p><a id="Clasificaci.C3.B3n_de_las_redes_de_ordenadores" name="Clasificaci.C3.B3n_de_las_redes_de_ordenadores"></a></p>
<h2><span class="mw-headline">Clasificación de las redes de ordenadores</span></h2>
<p><a id="Por_capa_de_red" name="Por_capa_de_red"></a></p>
<h3><span class="mw-headline">Por capa de red</span></h3>
<p>Las redes de ordenadores se pueden clasificar según la capa de red en la cual funcionan según algunos modelos de la referencia básica que se consideren ser estándares en la industria tal como el modelo OSI de siete capas y el modelo del TCP/IP de cinco capas.</p>
<p><a id="Por_la_escala" name="Por_la_escala"></a></p>
<h3><span class="mw-headline">Por la escala</span></h3>
<p>Las redes de ordenadores se pueden clasificar según la escala o el grado del alcance de la red, por ejemplo como red personal del área (PAN), la red de área local (LAN), red del área del campus (CAN), red de área metropolitana (MAN), o la red de área amplia (WAN).</p>
<p><a id="Por_m.C3.A9todo_de_la_conexi.C3.B3n" name="Por_m.C3.A9todo_de_la_conexi.C3.B3n"></a></p>
<h3><span class="mw-headline">Por método de la conexión</span></h3>
<p>Las redes de ordenadores se pueden clasificar según la tecnología que se utiliza para conectar los dispositivos individuales en la red tal como HomePNA, línea comunicación, Ethernet, o LAN sin hilos de energía.</p>
<p><a id="Por_la_relaci.C3.B3n_funcional" name="Por_la_relaci.C3.B3n_funcional"></a></p>
<h3><span class="mw-headline">Por la relación funcional</span></h3>
<p>Las redes de ordenadores se pueden clasificar según las relaciones funcionales que existen entre los elementos de la red, servidor activo por ejemplo del establecimiento de una red, de cliente y arquitecturas del Par-a-par (workgroup). También, las redes de ordenadores son utilizadas para enviar datos a partir del uno a otro por el hardrive.</p>
<p><a id="Por_topolog.C3.ADa_de_la_red" name="Por_topolog.C3.ADa_de_la_red"></a></p>
<h3><span class="mw-headline">Por topología de la red</span></h3>
<p>Define como están conectadas computadoras, impresoras, dispositivos de red y otros dispositivos. En otras palabras, una topología de red describe la disposición de los cables y los dispositivos, así como las rutas utilizadas para las transmisiones de datos. La topología influye enormemente en el funcionamiento de la red.</p>
<p>las topologias son las siguientes:</p>
<p>bus anillo estrella estrella extendida jerárquica malla</p>
<p><a id="Por_los_servicios_proporcionados" name="Por_los_servicios_proporcionados"></a></p>
<h3><span class="mw-headline">Por los servicios proporcionados</span></h3>
<p>Las redes de ordenadores se pueden clasificar según los servicios que proporcionan, por ejemplo redes del almacén, granjas del servidor, redes del control de proceso, red de valor añadido, red sin hilos de la comunidad, etc.</p>
<p><a id="Por_protocolo" name="Por_protocolo"></a></p>
<h3><span class="mw-headline">Por protocolo</span></h3>
<p>Las redes de ordenadores se pueden clasificar según el protocolo de comunicaciones que se está utilizando en la red. Ver los artículos sobre la lista de los apilados del protocolo de red y la lista de los protocolos de red para más información.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hermeant.wordpress.com/6/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hermeant.wordpress.com/6/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hermeant.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hermeant.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hermeant.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hermeant.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hermeant.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hermeant.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hermeant.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hermeant.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hermeant.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hermeant.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hermeant.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hermeant.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hermeant.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hermeant.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hermeant.wordpress.com&amp;blog=4023234&amp;post=6&amp;subd=hermeant&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hermeant.wordpress.com/2008/06/27/dredes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59f55d6cf8c8c22192cc694826477646?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">hermeant</media:title>
		</media:content>

		<media:content url="http://upload.wikimedia.org/wikipedia/commons/thumb/4/4a/Topolog%C3%ADa_de_red.png/200px-Topolog%C3%ADa_de_red.png" medium="image">
			<media:title type="html">Arquitecturas de red</media:title>
		</media:content>

		<media:content url="http://hermeant.wordpress.com/skins-1.5/common/images/magnify-clip.png" medium="image" />

		<media:content url="http://upload.wikimedia.org/wikipedia/commons/thumb/1/1b/Tokenring.png/200px-Tokenring.png" medium="image">
			<media:title type="html">Red Token Ring.</media:title>
		</media:content>

		<media:content url="http://hermeant.wordpress.com/skins-1.5/common/images/magnify-clip.png" medium="image" />

		<media:content url="http://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Traducci%C3%B3n.png/50px-Traducci%C3%B3n.png" medium="image" />

		<media:content url="http://upload.wikimedia.org/wikipedia/commons/thumb/e/ef/ISO_639_Icon_en.svg/50px-ISO_639_Icon_en.svg.png" medium="image" />
	</item>
		<item>
		<title>ETA ESTA ES MI PAGINA</title>
		<link>http://hermeant.wordpress.com/2008/06/19/hello-world/</link>
		<comments>http://hermeant.wordpress.com/2008/06/19/hello-world/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 22:32:16 +0000</pubDate>
		<dc:creator>hermeant</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[BIENVENIDOS A MI PRIMERA PAGINA, AQUI ENCONTRAREAS CONTENIDO DE LOS SIGUIENTES CURSOS: REDES, PROGRAMACIO, ESTRUCRURA DE DATOS Y ARQUETECTURA.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hermeant.wordpress.com&amp;blog=4023234&amp;post=1&amp;subd=hermeant&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>BIENVENIDOS A MI PRIMERA PAGINA, AQUI ENCONTRAREAS CONTENIDO DE LOS SIGUIENTES CURSOS: REDES, PROGRAMACIO, ESTRUCRURA DE DATOS Y ARQUETECTURA.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/hermeant.wordpress.com/1/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/hermeant.wordpress.com/1/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/hermeant.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/hermeant.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/hermeant.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/hermeant.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/hermeant.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/hermeant.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/hermeant.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/hermeant.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/hermeant.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/hermeant.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/hermeant.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/hermeant.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/hermeant.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/hermeant.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=hermeant.wordpress.com&amp;blog=4023234&amp;post=1&amp;subd=hermeant&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://hermeant.wordpress.com/2008/06/19/hello-world/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/59f55d6cf8c8c22192cc694826477646?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">hermeant</media:title>
		</media:content>
	</item>
	</channel>
</rss>
