• Ir al contenido
  • Ir a la navegación
  • Ir al buscador
 
Portada Boludo
ING English
Directorio WAP para móvil, Tablet, iPhone o Smartphone

Centro de Noticias de la Universidad de Oriente

Categorías

 

Inicio  |  Contacto  |  Posts  |  TIENDA PUBLISHOP  |  Sobre nosotros  |  Registro y Planes  |  Pagos  |  Donaciones

Ver Código QR de esta página

Campaña #AyudemosaYuli  |  Campaña #AyudemosaStephany.  |  ¿Interesado(a) en cursos y resolución de ejercicios de materias prácticas? Para más información, contáctenos por: Teléfono: +58 (412) - 8226575. WhatsApp y Telegram: +58 (426) - 6836955 o escriba al correo: [email protected]. Únete al grupo: SISTEMAS (UDOMO).

[»] **Musica para tu celular

WEB TRANSLATOR

LINK for English Language

Use this link for translate into English


+ Buscar en BolUDO

 

Métodos inline

Tweet
 

lunes julio 11, 2016

Los métodos inline tienen por objetivo hacer partes de nuestro programas más eficientes en tiempo de ejecución.

Cuando definimos un método inline el código de la misma hace que se copie en el lugar donde se la llama a dicha función. Hay que tener en cuenta que cuando llamamos a un método hay una pérdida de tiempo en la llamada en si mismo.

Es conveniente utilizar métodos inline solo para algoritmos pequeñas ya que si bien hacen el código más eficiente por otro lado generan un código compilado más grande.

Problema:

Crear una clase llamada Temperatura que permita cargar la temperatura mínima, máxima y actual. Definir un método inline para retornar el rango de variación (diferencia entre la máxima y la mínima)

Programa:

#include<iostream>

using namespace std;

class Temperatura {
    int minima;
    int maxima;
    int actual;
public:
    Temperatura(int min, int max, int act);
    int rango()
    {
        int valor = maxima - minima;
        return valor;
    }
    void imprimir();
};

Temperatura::Temperatura(int min, int max, int act)
{
    minima = min;
    maxima = max;
    actual = act;
}

void Temperatura::imprimir()
{
    cout << "Minima:" << minima << "";
    cout << "Maxima:" << maxima << "";
    cout << "Actual:" << actual << "";
}


void main()
{
    Temperatura temperatura1(5,25,17);
    cout << "Rango de variacion de temperaturas:" << temperatura1.rango()<<"";
    temperatura1.imprimir();
    cin.get();
}

Este proyecto lo puede descargar en un zip desde este enlace :

Metodosinline1.zip

En C++ un método es inline solo con implementarlo en la declaración de la clase:

class Temperatura {
    int minima;
    int maxima;
    int actual;
public:
    Temperatura(int min, int max, int act);
    int rango()
    {
        int valor = maxima - minima;
        return valor;
    }
    void imprimir();
};

Si bien podemos agregar la palabra clave inline normalmente los programadores no lo hacen:

class Temperatura {
    int minima;
    int maxima;
    int actual;
public:
    Temperatura(int min, int max, int act);
    inline int rango()
    {
        int valor = maxima - minima;
        return valor;
    }
    void imprimir();
};

Tanto constructores como destructores pueden implementarse inline, en el problema anterior si implementamos el constructor inline el código queda como sigue:

#include<iostream>

using namespace std;

class Temperatura {
    int minima;
    int maxima;
    int actual;
public:
    Temperatura(int min, int max, int act)
    {
        minima = min;
        maxima = max;
        actual = act;
    }
    int rango()
    {
        int valor = maxima - minima;
        return valor;
    }
    void imprimir();
};

void Temperatura::imprimir()
{
    cout << "Minima:" << minima << "";
    cout << "Maxima:" << maxima << "";
    cout << "Actual:" << actual << "";
}


void main()
{
    Temperatura temperatura1(5,25,17);
    cout << "Rango de variacion de temperaturas:" << temperatura1.rango()<<"";
    temperatura1.imprimir();
    cin.get();
}

Otra cosa que podemos notar en programas escritos en C++ es que cuando se declaran métodos inline se codifiquen en una sola línea, tener en cuenta que el resultado del algoritmo no cambia en absoluto, sino es solo una forma de organizar el código fuente de la declaración de la clase. En nuestro ejemplo tendríamos:

#include<iostream>

using namespace std;

class Temperatura {
    int minima;
    int maxima;
    int actual;
public:
    Temperatura(int min, int max, int act)    { minima = min; maxima = max; actual = act;    }
    int rango()    { int valor = maxima - minima; return valor; }
    void imprimir();
};

void Temperatura::imprimir()
{
    cout << "Minima:" << minima << "";
    cout << "Maxima:" << maxima << "";
    cout << "Actual:" << actual << "";
}


void main()
{
    Temperatura temperatura1(5,25,17);
    cout << "Rango de variacion de temperaturas:" << temperatura1.rango()<<"";
    temperatura1.imprimir();
    cin.get();
}
  1. Plantear una clase que administre un vector de 5 enteros. Cargar los elementos por teclado, imprimirlos y retornar la suma de la primera y última componente (este último método implementarlo inline)
Solución
#include<iostream>

using namespace std;

class Vector {
    int vec[5];
public:
    void cargar();
    void imprimir();
    int sumaPrimeroUltimo() { return vec[0] + vec[4]; }
};

void Vector::cargar()
{
    for (int f = 0; f < 5; f++)
    {
        cout << "Ingrese elemento:";
        cin >> vec[f];
    }
}

void Vector::imprimir()
{
    for (int f = 0; f < 5; f++)
    {
        cout << vec[f] << "-";
    }
    cout << "";
}


void main()
{
    Vector vec1;
    vec1.cargar();
    vec1.imprimir();
    cout <<"Suma de la primer y última componente:"<<vec1.sumaPrimeroUltimo();
    cin.get();
    cin.get();
}

Este proyecto lo puede descargar en un zip desde este enlace :Metodosinline2.zip

— @bolUDOoficial

— Síguenos en Twitter@bolUDOoficial

Categorías: #C++, #


[0] Atrás | Directorio
« Inicio
Apps Infoudo
Apps Infoudo ¡Descarga el icono directo en el menú de tu equipo!
[»] Las mejores Apps para tu celular
[»] Imágenes Gratis


Comenta o lee lo que otros opinan

COMPÁRTELO:

Indica que te gusta y comparte

Me Gusta :)Facebook Tuiteame :)Twitter .WhatsApp .Telegram . LinkedIn

También te puede interesar:

NOCIONES BÁSICAS DE LA PROGRAMACIÓN ORIENTADA A OBJETOS.
Material de Apoyo del Curso de Programación - Lenguaje C++ - Periodo (Feb - May) del año en curso
Parámetros por valor y por referencia de objetos
Parámetros por valor y por referencia de datos simples
Métodos constantes (const)
Parámetros de un método constante (const)
Definición de constantes (const)
Directiva #define
Puntero this
Métodos estáticos de una clase


« Estructuras dinámicas en C++: Implementación de un árbol binario  |  Funciones amigas (friend) »
 
Apps Infoudo
 
Buscador:
Powered by Google:


Web móvil
Imágenes
La Web

 

Síguenos por RSS


Puedes leerlos mediante el navegador Firefox, lectores de noticias en la computadora o el móvil o usando el servicio de Feedburner de Google para recibir las notificaciones por correo electrónico.
RSS - Suscribirse usando Feedburner de Google

email Recibir las nuevas publicaciones de Boludo por email

Atom


»Ir a URL
.....
Registra Gratis Tu Negocio
....
Sugerir un nuevo sitio WAP

...
¡Bloguea Ya!

..
Registro de Profesionales(Abogados, escritores, doctores, licenciados, ingenieros, etc.)
.
Soporte

Síguenos en las redes sociales

Síguenos en Facebook facebook.com/boludooficial Síguenos en Twitter @bolUDOoficial Síguenos en Instagram @boludooficial Síguenos en Telegram t.me/Boludooficial
Síguenos en WhatsApp BolUDOoficial Síguenos en YouTube youtube.com/@boludo.oficial
Síguenos en Facebook facebook.com/SergioAlemanFans Síguenos en Twitter @SergioAleman1 Síguenos en Instagram @sergioalemanfans
Síguenos en WhatsApp wa.me/qr/Y7Q232VLZPR5O1 Síguenos en Tiktok @sergioalemanoficial Síguenos en Tiktok @sergioalemanfans
Síguenos en Telegram t.me/SergioAlemanOficial Síguenos en YouTube youtube.com/@sergioaleman
Síguenos en Facebook facebook.com/INFOUDO.OFICIAL Síguenos en Twitter @infoudomon Síguenos en Instagram @infoudooficial Síguenos en Telegram t.me/Infoudooficial
Síguenos en Facebook facebook.com/tuinfou Síguenos en Twitter @infoudomonagas
Síguenos en WhatsApp INFO UDO Síguenos en YouTube youtube.com/@infoudooficial

Mis cuentas sociales

FB
Twitter
Pinterest
Instagram
Otras

Móvil: (0426 683 6955 - 0412 8226575) - E-mail: [email protected] - [email protected] - WhatsApp: +58 (0426) 683.69.55


Copyscape
Volver arriba

Protocolo  |  Mapa del Sitio  |  Report Abuse - DMCA  |  Términos y Condiciones  |  Ayuda  |  Privacidad de Datos  |  Política de Cookies  |  Reportar un bug  |  Licencia: CC BY-NC-ND 3.0

Copyright ©2023 Boludo. Todos los derechos reservados. Diseñado y Desarrollado por Sergio Alemán Mi perfil en GitHub


SUBIR