punteros recoradorio

Iniciado por bash, 18 Septiembre 2010, 06:45 AM

0 Miembros y 1 Visitante están viendo este tema.

bash

buenas a todos la verdad es que quisiera resolver este problemita con delicades ya que es un punto muy importante  para mucha gente  aqui hoy decidi empezar con esto

primer asunto punteros

mire esto yo no lo entiendo bien si alguien puede explicarme(nos)

Código (cpp) [Seleccionar]

void imprime_cuadro(char *str)
{
/*
cout <<"============================================================"<<endl;
cout <<"="<<"           "<<str<<"="<<endl;
cout <<"============================================================"<<endl;
*/
for(int i(0); i <10;  i++)
cout << str[i]<<endl;

}


la verdad se que un puntero es un array dinamico(vector que se que es una clase de la stl )

pero la verda es que quisiera saber todo lo que deba saber acerca de ellos

si alguien me  da la info.

gracias!!
gracias por responder mis dudas

Littlehorse

La primer idea errónea que tenes que olvidar es la estricta relación que planteas entre los punteros y la STL; podes manejar un array dinamico sin siquiera tener que utilizar una sola vez el contenedor vector.
El concepto de punteros existe ya en C, mucho antes que la STL siquiera tuviese un nombre.

Es un tema largo, complicado al principio, pero fácil cuando se entiende. Lo ideal seria que leas un libro de C/C++, "Como programar en C/C++" de Deitel && Deitel es una buena opción. En las chinchetas hay un hilo con varios libros para descarga.

Te dejo estos dos hilos, ya que son los primeros que se me vienen a la cabeza. Utiliza el buscador y seguramente encuentres mas.


Saludos
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

Garfield07

La respuesta de LittleHorse es muy buena. Un puntero es simplemente una variable que contiene una direccion de memoria de otro dato. Se declaran como una variable normal: Si vas a usar un puntero que va a apuntar (tener la direccion de) a una variable TAL, lo declaras TAL *puntero;
xejemplo:
Citarchar *punt.;
Citarint *punt.;
CitarFILE *punt.;
etc.
Olvidate de las ideas que tienes y leete lo de Littlehorse, que para eso es nuestro moderador jeje.

saludos y suerte


* Quiero cambiar el mundo, pero estoy seguro de que no me darían el código fuente.
* No estoy tratando de destruir a Microsoft. Ese será tan solo un efecto colateral no intencionado.
* Si compila esta bien, si arranca es perfecto.

¡Wiki elhacker.net!
Un saludo

bash

#3
buenas
gracias por responder



entiendo por que me dices esas cosas y es muy cierto ,pero tal ves no paresca pero lo quize poner como un ejemplo pero la verdad es que tengo  que poner mi code completo aqui abaja para mostrar lo que estoy haciendo es una implemtacion simple de un ejemplo que quiero mostrar a unos compañeros pero cuando (que compila bien el sistema (Window lanza una epxecion de ) y termina mi app).


esta es la modificacion del code completo  a ver que me dice por que la verdfad estoy perdido

Código (cpp) [Seleccionar]
#include <iostream>
#include <vector>
#include<string>


using namespace std;
class UsuarioC;


class NominaF{
   private:
   vector<string> ComprobanteFiscal;
   vector<double> Sueldo;
   vector<string> NombreUsuario;
   int datos;
   friend class UsuarioC;

   public:

   NominaF(){
       datos=0;
       }

};

class UsuarioC{
   public:

   void CargarDatos(NominaF obj)
   {
    string Nom;
    double sueldo;
    string Comprobante;
    char respu;
    cout <<"======================================================"<<endl;
    cout <<"                     Nomina 0.1                       "<<endl;
    do{

    obj.datos++;
    cout <<endl<<endl;

    cout <<"ingresar datos:                                       "<<endl;
    cout <<"Nombre:                                               "<<endl;
    cout <<">>";
    getline(cin, Nom);
    cin.ignore();
    cout <<endl;
    cout <<"ponga su sueldo                                       "<<endl;
    cin  >>sueldo;
    cout <<endl;
    cout <<"ponga numero de comprobante fiscal de la empresa.     "<<endl;
    getline(cin,Comprobante, '%');
    cin.ignore();
    obj.NombreUsuario.push_back(Nom);
    obj.Sueldo.push_back(sueldo);
    obj.ComprobanteFiscal.push_back(Comprobante);
    cout <<endl<<endl;

    cout <<"desea cargar mas usuarios  s o S                      "<<endl;
    cin  >> respu;

    }while((respu =='s') || (respu=='S'));
    }
void leer(NominaF obj){
   for(int i(0); i <obj.datos;i++){

   cout <<"Usuario           :"<<obj.NombreUsuario.at(i)<<endl;
   cout <<"Sueldo            :"<<obj.Sueldo.at(i)<<endl;
   cout <<"Comprobante Fiscal:"<<obj.ComprobanteFiscal.at(i)<<endl;
   }

}

};


int main ()
{
 NominaF   nomina;
 UsuarioC  User;

 User.CargarDatos(nomina);
 User.leer(nomina);
 return 0;
}


disculpen la INSISTENCIA pero la verdad es una duda k tengo muy en el fondo

por que ahora pruebo el push_back fuera de la clase y al parece trabaja bien pero cuando uso una instancia de la clase amiga nada de nada k me recomiendan
gracias por responder mis dudas