Вы находитесь на странице: 1из 17

Lenguaje de programación C++

Paula Andrea Sierra Galvis.

Abril 2019.

Colegio La Presentación.

Piedecuesta - Santander.

Tecnología.
Tabla de contenido. ii

1. Historia.......................................................................................................................................1

2. Conceptos generales. .................................................................................................................3

3. Tipos de datos. ...........................................................................................................................5

3.1 Números enteros. ....................................................................................................................6

3.2 Datos numéricos reales. .........................................................................................................8

3.3 Datos lógicos. .........................................................................................................................9

3.4 Datos de carácter extendido. ................................................................................................10

4. El concepto de clase. ................................................................................................................10

4.1 Los constructores. .................................................................................................................11

4.2 Los destructores. ...................................................................................................................12

5. Utilidad del C++. ......................................................................................................................13

6. Lista de referencias ..................................................................................................................15


1

Lenguaje de programación C++.

1. Historia.

El C++ es un lenguaje imperativo de programación orientado a los objetos derivados del

C. Se considera en realidad un superconjunto de C, que fue concebido para añadirle

cualidades y características de las que carecía. De igual forma se tiene que es “El

resultado es que como su ancestro, sigue muy ligado al hardware subyacente,

manteniendo una considerable potencia para programación a bajo nivel, pero se la han

añadido elementos que le permiten también un estilo de programación con alto nivel de

abstracción.” (Ecured, 2019).

Este lenguaje de programación fue diseñado en 1979 por Bjarne Stroustrup, quien es un

científico de la computación y catedrático de ciencias de la computación en la

Universidad A&M de Texas. La intención de su creador fue extender al lenguaje de

programación C mecanismos que permiten la manipulación de objetos.

Al C++ se le considera como un lenguaje de programación multiparadigma teniendo en

cuenta las facilidades de programación genérica, los paradigmas de programación

estructurada y programación orientada a objetos.


2

Una posibilidad de este lenguaje es la de redefinir los operados y de poder crear nuevos

tipos que se comporten como tipos fundamentales.

Debe tenerse en cuenta que “Su éxito entre los programadores profesionales le ha llevado

a ocupar el primer puesto como herramienta de desarrollo de aplicaciones. El C++

mantiene las ventajas del C en cuanto a riqueza de operadores y expresiones, flexibilidad,

concisión y eficiencia. Además, ha eliminado algunas de las dificultades y limitaciones

del C original. La evolución de C++ ha continuado con la aparición de Java, un lenguaje

creado simplificando algunas cosas de C++ y añadiendo otras, que se utiliza para realizar

aplicaciones en Internet. Hay que señalar que el C++ ha influido en algunos puntos muy

importantes del ANSI C, como por ejemplo en la forma de declarar las funciones, en los

punteros a void, etc. En efecto, aunque el C++ es posterior al C, sus primeras versiones

son anteriores al ANSI C, y algunas de las mejoras de éste fueron tomadas del C++. C++

es a la vez un lenguaje procedural (orientado a algoritmos) y orientado a objetos. Como

lenguaje procedural se asemeja al C y es compatible con él, aunque ya se ha dicho que

presenta ciertas ventajas. Como lenguaje orientado a objetos se basa en una filosofía

completamente diferente, que exige del programador un completo cambio de mentalidad.

Las características propias de la Programación Orientada a Objetos (Object Oriented

Programming, u OOP) de C++ son modificaciones mayores que sí que cambian

radicalmente su naturaleza.” (Ecured, 2019).


3

2. Conceptos generales.

Para comprender mejor el C++ debemos tener en cuenta los siguientes conceptos

generales, que definidos por ECURED se sintetizan así:

 Clase: 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).

 Objeto: 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.

 Identidad: 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.

 Herencia: Es la capacidad que tienen las clases para heredar propiedades y métodos

de otras clases.
4

De igual forma es pertinente definir y conocer las diferencias entre funciones,

métodos y procedimientos, los cuales según Programarya se pueden diferenciar así:

“Funciones: Las funciones son un conjunto de procedimientos encapsulados en

un bloque, usualmente reciben parámetros, cuyos valores utilizan para efectuar

operaciones y adicionalmente retornan un valor. Esta definición proviene de la

definición de función matemática la cual posee un dominio y un rango, es decir un

conjunto de valores que puede tomar y un conjunto de valores que puede retornar

luego de cualquier operación.

Métodos: Los métodos y las funciones son funcionalmente idénticos, pero su

diferencia radica en el contexto en el que existen. Un método también puede

recibir valores, efectuar operaciones con estos y retornar valores, sin embargo en

método está asociado a un objeto, básicamente un método es una función que

pertenece a un objeto o clase, mientras que una función existe por sí sola, sin

necesidad de un objeto para ser usada.

Procedimientos: Los procedimientos son básicamente lo un conjunto de

instrucciones que se ejecutan sin retornar ningún valor, hay quienes dicen que un

procedimiento no recibe valores o argumentos, sin embargo en la definición no

hay nada que se lo impida. En el contexto de C++ un procedimiento es

básicamente una función void que no nos obliga a utilizar una sentencia return.”

(Programarya, sin fecha)


5

3. Tipos de datos.

En el C++ los datos se clasifican en primitivos y derivados.

Los tipos de datos primitivos son los que están definidos dentro del lenguaje.

Los tipos de datos derivados se forman a partir de los tipos primitivos.

En este tema veremos los tipos primitivos y en temas siguientes estudiaremos los tipos

derivados.

Los tipos de datos primitivos en C++ son: numéricos enteros, numéricos reales, tipo

lógico y tipo carácter ampliado.

Para otros autores como Wikipedia, consideran que C++ tiene los siguientes tipos de

datos fundamentales:

 Caracteres: char (también es un entero), wchar_t

 Enteros: short , int , long , long

 Números en coma flotante: float , double , long double

 Booleanos: bool
6

 Vacío: void

El modificador unsigned se puede aplicar a enteros para obtener números sin signo (por

omisión los enteros contienen signo), con lo que se consigue un rango mayor de números

naturales.

3.1 Los números enteros.

Sobre esta clase de datos, tenemos que:

“ El tipo de dato numérico entero es un subconjunto finito de los números enteros del

mundo real. Pueden ser positivos o negativos.

En C++ los tipos de datos numéricos enteros son los siguientes:

Número de
Tipo de Dato Descripción Rango
bytes típico

short Entero corto 2 -32768 a 32767

int Entero 4 -2147483648 a +2147483647

long Entero largo 4 -2147483648 a +2147483647

char Carácter 1 -128 a 127

Tabla 1. Tipos de datos de numéricos enteros. Fuente Ejercicios CPP.


7

Con los tipos enteros pueden utilizarse los calificadores signed y unsigned. Estos

calificadores indican si el número tiene signo o no. Si se usan solos, sin indicar el tipo de

dato se asume int.

Por ejemplo, las siguientes declaraciones son equivalentes:

unsigned int x; equivale a: unsigned x;

Usando estos calificadores podemos tener los siguientes tipos enteros:

Número de
Tipo de Dato Descripción Rango
bytes típico

signed short Entero corto 2 -32768 a 32767

Entero corto sin


unsigned short 2 0 a 65535
signo

signed int Entero 4 -2147483648 a +2147483647

unsigned int Entero sin signo 4 0 a 4294967295

signed long Entero largo 4 -2147483648 a +2147483647

Entero largo sin


unsigned long 4 0 a 4294967295
signo
8

signed char Carácter 1 -128 a 127

unsigned char Carácter sin signo 1 0 a 255

Tabla número 2. Tipos de enteros usando calificadores. Fuente Ejercicios CPP.

Podemos ver que los datos enteros de tipo signed son equivalentes a los enteros sin

utilizar el calificador:

signed int a; es equivalente a escribir int a.” (Ejercicios CPP, 2012).

3.2 Los datos numéricos reales.

Para el mismo autor, Ejercicios CPP estos datos son

“El tipo de dato numérico real es un subconjunto finito de los números reales. Pueden ser

positivos o negativos”.

En C++ los tipos de datos numéricos reales son los siguientes:

Tipo de Número de
Descripción Rango
Dato bytes típico

Real (Número en Positivos: 3.4E-38 a 3.4E38


float 4
coma flotante) Negativos: -3.4E-38 a -3.4E38
9

Real doble(Número en
Positivos: 1.7E-308 a 1.7E308
double coma flotante de doble 8
Negativos: -1.7E-308 a -1.7E308
precisión)

Positivos: 3.4E-4932 a 1.1E4932


long
Real doble largo 10 Negativos: -3.4E-4932 a -1.1E4932
double

Tabla número 3. Tipos de datos numéricos reales. Fuente Ejercicios CPP.

3.3 Datos lógicos.

Definidos por Ejercicios CPP como “los datos de este tipo sólo pueden contener dos

valores: true ó false (verdadero ó falso).

Si se muestran como enteros, el valor true toma el valor 1 y false el valor 0.

Tipo de Número de
Descripción Rango
Dato bytes típico

bool Dato de tipo lógico 1 0, 1

Tabla número 4. Tipos de datos lógicos. Fuente Ejercicios CPP.


10

3.4 Datos de carácter extendido.

Siguiendo con el mismo autor (Ejercicios CPP, 2012), para estos se considera que “este

tipo se utiliza para representar caracteres UNICODE. Utiliza 2 bytes a diferencia del tipo

char que solo utiliza 1.

Tipo de Número de
Descripción Rango
Dato bytes típico

wchar_t Carácter Unicode 2 0 a 65535

Tabla número 5. Datos de character extendido. Fuente Ejercicios CPP.

4. El concepto de clase.

Los objetos en el lenguaje de C++ son abstraídos mediante una clase. Según el paradigma

de la programación orientada a objetos, un objeto consta de:

 Identidad, lo diferencia de otros objetos. (se trata del nombre que llevara la clase a

la que pertenece dicho objeto).

 Métodos o funciones miembro.


11

 Atributos o variables miembro.

4.1 Los constructores.

Se trata de unos métodos especiales que se ejecutan automáticamente al crear un objeto

de la clase. Según Wikipedia 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.

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.

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”.

Siguiendo con el mismo autor se tienen varios tipos de constructores que son:

“ Constructor predeterminado. Es el constructor que no recibe ningún parámetro en la

función. Si no se definiera ningún constructor, el sistema proporcionaría uno

predeterminado. Es necesario para la construcción de estructuras y contenedores de la

STL.
12

Constructor de copia. Es un constructor que recibe un objeto de la misma clase, y

realiza una copia de los atributos del mismo. Al igual que el predeterminado, si no se

define, el sistema proporciona uno.

Constructor de conversión. Este constructor, recibe como único parámetro, un objeto o

variable de otro tipo distinto al suyo propio. Es decir, convierte un objeto de un tipo

determinado a otro objeto del tipo que estamos generando.” (Wikipedia, sin fecha de

publicación).

4.2 Los destructores.

Wikipedia los define como:

“son funciones miembro especiales llamadas automáticamente en la ejecución del

programa, y por tanto no tienen por qué ser llamadas explícitamente por el

programador. Sus principales cometidos son:

 Liberar los recursos computacionales que el objeto de dicha clase haya adquirido en

tiempo de ejecución al expirar este.

 Quitar los vínculos que pudiesen tener otros recursos u objetos con este.

Los destructores son invocados automáticamente al alcanzar el flujo del programa el fin

del ámbito en el que está declarado el objeto. El único caso en el que se debe invocar

explícitamente al destructor de un objeto, es cuando este fue creado mediante el

operador new, es decir, que este vive en memoria heap, y no en la pila de ejecución del
13

programa. La invocación del destructor de un objeto que vive en heap se realiza a través

del operador delete o delete[] para arrays.”

5. Utilidades de C++.

Con este lenguaje según ECURED se han creado las siguientes soluciones de

programación:

 “Kernel y drivers de dispositivos: Tanto los drivers como el kernel funcionan en un

nivel realmente bajo de operaciones en el ordenador. Para escribir el kernel del

sistema operativo y acceder a las propiedades del hardware tales como los ciclos de la

memoria, buses de entrada/salida, etc., se necesita un lenguaje que pueda

comunicarse con el hardware con potencia. El kernel Linux hace uso del lenguaje C

(aunque en realidad no se trate de un lenguaje de bajo nivel) con una pequeña parte

en lenguaje ensamblador.

 Librerías y utilidades: Las librerías y utilidades básicas del sistema tales como mkdir,

chmod, chown, head, tail, chroot, uptime, users también están escritas en lenguaje C.

 Gestores de paquetes y programas de configuración: Los gestores de paquetes tales

como yum, apt, dpkg, etcétera, también están escritos en C, que como veis es la

estrella absoluta de los componentes "base" de un sistema GNU/Linux.


14

 Entornos de Escritorio y gestores de ventanas: La mayoría de gente usa un entorno de

escritorio, y es que a día de hoy poco queda sólo en interfaz de línea de comandos.

Los gestores de ventanas tales como metacity, kwin están desarrollados en C y

requieren gcc para ser compilados. El entorno de escritorio, iconos, ventanas, barras

de herramientas, etc, están basados en librerías específicas (Qt para KDE, GTK+ para

GNOME) y hacen uso del lenguaje mayoritario, C.

 Aplicaciones gráficas de usuario: Este es el punto donde entran en juego una gran

cantidad de lenguajes de programación, dado que básicamente es la capa más alta.

Tenemos una gran variedad: C, Python, Java, Perl y otros. Hay librerías GTK+,

Tcl/Tk, Qt que son un frontend gráfico a tareas que corren por detrás en línea de

comando.

 El Sistema operativo Windows está hecho básicamente en C, C tiene la ventaja de

que puede escalarse con ensamblador, lo cual es buena opción para optimizar ciertos

módulos”.
15

Lista de referencias.

Ecured, sin fecha de publicación, C++, Recuperado el 15 de abril de 2019 de

https://www.ecured.cu/C%2B%2B.

Ejercicios CPP, publicado en 2012, Tipos de datos en C++, Recuperado el 15 de abril de

2019 de http://ejercicioscpp.blogspot.com/2012/09/tipos-de-datos-en-c.html

Wikipedia la enciclopedia libre, sin fecha de publicación, C++, recuperado el 15 de abril

de 2019 de https://es.wikipedia.org/wiki/C%2B%2B

Programarya.com, sin fecha de publicación, Funciones, métodos y procedimientos en

C++, recuperado el 15 de abril de 2019 de

https://www.programarya.com/Cursos/C++/Funciones

Вам также может понравиться