Características de C++ – Part 1

C++ es un lenguaje de programación de propósito general que se desarrolló como una mejora del lenguaje C para incluir el paradigma orientado a objetos . Es un lenguaje imperativo y compilado

Programación orientada a objetos

C++ es un lenguaje de programación orientado a objetos, a diferencia de C, que es un lenguaje de programación procedimental . Esta es la característica más importante de C++ . Puede crear/destruir objetos mientras programa. Además, puede crear planos con los que se pueden crear objetos. Hemos discutido los conceptos de programación orientada a objetos en C++ en este artículo .

Conceptos del lenguaje de programación orientado a objetos:

Independiente de la máquina

Un ejecutable de C++ no es independiente de la plataforma (los programas compilados en Linux no se ejecutarán en Windows), sin embargo, son independientes de la máquina.

Entendamos esta característica de C++ con la ayuda de un ejemplo. Supongamos que ha escrito un fragmento de código que puede ejecutarse en Linux/Windows/Mac OSx, lo que hace que C++ sea independiente de la máquina, pero el archivo ejecutable de C++ no puede ejecutarse en diferentes sistemas operativos.

Simple

Es un lenguaje simple en el sentido de que los programas se pueden dividir en unidades y partes lógicas, tiene un rico soporte de biblioteca y una variedad de tipos de datos. Además, la palabra clave automática de C++ hace la vida más fácil.

La palabra clave automática

La idea del auto era hacer que el compilador de C++ dedujera el tipo de datos durante la compilación en lugar de hacer que declararas el tipo de datos cada maldita vez. Tenga en cuenta que no puede declarar algo sin un inicializador. Debe haber alguna forma para que el compilador deduzca su tipo.

C++

// C++ program for using auto keyword
 
#include <bits/stdc++.h>
using namespace std;
 
// Driver Code
int main()
{
 
    // Variables
    auto an_int = 26;
    auto a_bool = false;
    auto a_float = 26.24;
    auto ptr = &a_float;
 
    // Print typeid
    cout << typeid(a_bool).name() << "\n";
    cout << typeid(an_int).name() << "\n";
    return 0;
}
Producción: 

b
i

 

Lenguaje de alto nivel

C++ es un lenguaje de alto nivel, a diferencia de C, que es un lenguaje de programación de nivel medio. Hace la vida más fácil trabajar en C++, ya que es un lenguaje de alto nivel, ya que está estrechamente asociado con el idioma inglés comprensible para los humanos.

Popular

C++ puede ser el lenguaje base para muchos otros lenguajes de programación que admiten la función de programación orientada a objetos. Bjarne Stroustrup encontró Simula 67, el primer lenguaje orientado a objetos que carecía de simulaciones y decidió desarrollar C++.

Distingue mayúsculas y minúsculas

Está claro que C++ es un lenguaje de programación que distingue entre mayúsculas y minúsculas. Por ejemplo, cin se usa para recibir información del flujo de entrada . Pero si el «Cin» no funciona. Otros lenguajes como HTML y MySQL no distinguen entre mayúsculas y minúsculas.

Basado en compilador

C++ es un lenguaje basado en compiladores, a diferencia de Python. Es decir, los programas C++ solían compilarse y su archivo ejecutable se usa para ejecutarlo. Debido a que C++ es un lenguaje relativamente más rápido que Java y Python .

Asignación de memoria dinámica

Cuando el programa se ejecuta en C++, las variables se asignan al espacio de almacenamiento dinámico . Dentro de las funciones, las variables se asignan en el espacio de la pila. Muchas veces, no sabemos de antemano cuánta memoria se necesita para almacenar información particular en una variable definida y el tamaño de la memoria requerida se puede determinar en tiempo de ejecución.

Gestión de la memoria

  • C++ nos permite asignar la memoria de una variable o una array en tiempo de ejecución. Esto se conoce como asignación de memoria dinámica .
  • En otros lenguajes de programación como Java y Python , el compilador gestiona automáticamente las memorias asignadas a las variables. Pero este no es el caso en C++.
  • En C++, la memoria se debe desasignar de forma manual cuando ya no sirve.
  • La asignación y desasignación de la memoria se puede realizar utilizando los operadores nuevo y eliminar, respectivamente.

A continuación se muestra el programa para ilustrar la gestión de memoria en C++:

C++

// C++ implementation to illustrate
// the Memory Management
 
#include <cstring>
#include <iostream>
using namespace std;
 
// Driver Code
int main()
{
    int num = 5;
    float* ptr;
 
    // Memory allocation of
    // num number of floats
    ptr = new float[num];
 
    for (int i = 0; i < num; ++i) {
        *(ptr + i) = i;
    }
 
    cout << "Display the GPA of students:"
         << endl;
    for (int i = 0; i < num; ++i) {
 
        cout << "Student" << i + 1
             << ": " << *(ptr + i)
             << endl;
    }
 
    // Ptr memory is released
    delete[] ptr;
 
    return 0;
}
Producción: 

Display the GPA of students:
Student1: 0
Student2: 1
Student3: 2
Student4: 3
Student5: 4

 

subprocesos múltiples

  • Multithreading es una forma especializada de multitarea y multitarea es una función que permite que su sistema ejecute dos o más programas simultáneamente. En general, hay dos tipos de multitarea: basada en procesos y basada en subprocesos .
  • La multitarea basada en procesos maneja la ejecución simultánea de programas. La multitarea basada en subprocesos se ocupa de la multiprogramación de piezas de un programa equivalente.
  • Un programa multiproceso contiene dos o más partes que se ejecutarán simultáneamente. Cada parte de un programa de este tipo se denomina subproceso , y cada subproceso define una ruta de ejecución separada.
  • C++ no contiene ningún soporte integrado para aplicaciones de subprocesos múltiples. En cambio, depende completamente del sistema operativo para proporcionar esta función.

A continuación se muestra el programa para ilustrar Multithreading en C++ :

C++

// C++ implementation to illustrate
// the working of Multi-threading
 
#include <cstdlib>
#include <iostream>
#include <pthread.h>
 
using namespace std;
 
#define NUM_THREADS 5
 
// Function to print Hello with
// the thread id
void* PrintHello(void* threadid)
{
    // Thread ID
    long tid;
    tid = (long)threadid;
 
    // Print the thread ID
    cout << "Hello World! Thread ID, "
         << tid << endl;
 
    pthread_exit(NULL);
}
 
// Driver Code
int main()
{
 
    // Create thread
    pthread_t threads[NUM_THREADS];
    int rc;
    int i;
 
    for (i = 0; i < NUM_THREADS; i++) {
 
        cout << "main() : creating thread, "
             << i << endl;
 
        rc = pthread_create(&threads[i],
                            NULL,
                            PrintHello,
                            (void*)&i);
 
        // If thread is not created
        if (rc) {
            cout << "Error:unable to"
                 << " create thread, "
                 << rc << endl;
 
            exit(-1);
        }
    }
 
    pthread_exit(NULL);
}

Producción:

Este tutorial asume que está trabajando en el sistema operativo Linux y que vamos a escribir un programa C++ de subprocesos múltiples utilizando POSIX. POSIX Threads o Pthreads proporciona una API que está disponible en muchos sistemas POSIX similares a Unix, como FreeBSD, NetBSD, GNU/Linux, Mac OS X y Solaris. 

Publicación traducida automáticamente

Artículo escrito por br0wnhammer y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *