Código de C/Visual C - Uso de puntero en una clase C++

Requerimientos

Compilador Embarcadero C++ Builder ver. 10.3.3
Puedes descargar la última versión del IDE en: https://www.embarcadero.com/es/products/cbuilder/starter
Sistema Windows Vista 32/64 bits o versión superior.

1.0

Publicado el 6 de Agosto del 2020gráfica de visualizaciones de la versión: 1.0
507 visualizaciones desde el 6 de Agosto del 2020
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

Programa 'prueba_ptr.cpp' para Embarcadero C++ Builder ver. 10.3.3 o versión superior.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
// Autor: Octulio Biletán - Agosto de 2020.
// Ejemplo de puntero interno en una clase.
// Uso de '__closure'.
// Probado en Embarcadero C++ Builder 10.3, Río.
// También en Embarcadero C++ Builder 2010.
 
#ifdef __WIN32__
#include <tchar.h>
#else
  typedef char _TCHAR;
  #define _tmain main
#endif
 
#if __BORLANDC__ < 0x0621
// Se define nullptr para C++ Builder 2010 y versiones anteriores.
// No está implementada la palabra reservada en la mencionada versión.
#  define nullptr		NULL
#endif
 
#include <stdio.h>
#include <iostream>
 
using namespace std;
 
// Muestra en la pantalla el contenido de 'v'
// Devuelve puntero referencia tipo 'ostream'
ostream& muestra_valor(int v)
{
    return cout << v;
}
 
class Prueba
{
    public:
	int dato;
	ostream& (*ptr_fn)(int v);
 
	Prueba()
	{
	    dato = -1;
	    ptr_fn = muestra_valor;
	}
 
	~Prueba()
	{
	    dato = 0;
	    ptr_fn = nullptr;
	}
 
	ostream& valor(void)
	{
	    return ptr_fn(dato);
	}
};
 
int _tmain(int argc, _TCHAR* argv[])
{
	Prueba p;
	int *ptr;
	ostream& (__closure *ptr_fn)(void);
	char t = 0;
 
   ptr = &p.dato;
   ptr_fn = p.valor;
 
   // El nº se guarda en 'dato' de la clase 'Prueba'
   *ptr = 34;
 
   // ¿Qué valor muestra en pantalla ?
   cout << "(1)Valor de dato: ";
   ptr_fn().put('\n');
 
   cout << "(2)Valor de dato: " << ptr_fn() << endl;
 
   cout << "Presione Intro para continuar...";
   while(t != '\n')
     cin.get(t);
 
   return 0;
}



Comentarios sobre la versión: 1.0 (0)


No hay comentarios
 

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s6391