Pointers with methods, where am I going wrong?

4

Creating a class that will have two methods one assign another to print vectors with public and then call that method in main .

I've been able to do this with the baby steps method. Where am I going wrong and what do I have to do?

#include <iostream>
using namespace std;


class vetor
{
 int v, tamanho,vetores;

 public:
 void atribuir(int *v, int tamanho){
    for (int i=0; i<tamanho; i++) {
        cout << "Digite um numero: ";
        cin >> v[i];
    }
 }

 void mostrar(void)
 {
    for (int i =0; i<tamanho; i++) {
        cout << "O numero "<< i +1 << " inserido for: "
        <<vetores[&i]<<endl;
     }
 }
};

int main(){
int tamanhos;
 //    vetor *varios_vetor;
//    varios_vetor = new vetor[tamanho];

cout << "Digite o tamanho do vetor: ";
cin >> tamanhos;
cout <<"Tamanho do vetor: "<< tamanhos << endl;

//vetor::atribuir(int i, int tamanho)
//vetor *varios_vetor;
//varios_vetor = new vetor[tamanhos];

//varios_vetor[tamanhos].atribuir(int *v, int tamanhos);


return 0;
}
    
asked by anonymous 08.03.2014 / 21:34

1 answer

4

As the intention is to initialize the vector and then show it, you could simply pass the desired values to the class, not needing any parameters in the declaration of your assign () method: p>

#include <iostream.h>

using namespace std;

class Vetor
{
      int *vetor, tamanho; //Variáveis privadas que são acessadas pelos métodos da classe.

      public:
      Vetor(int t, int *v) //Construtor da classe.
      {
           vetor = v;      
           tamanho = t;            
      }              

      void atribuir(){
           for (int i = 0; i < tamanho; i++){
               cout << "Digite um numero: ";
               cin >> vetor[i];
           }
      }

      void mostrar(void){
           for (int i = 0; i < tamanho; i++) {
               cout << "O numero " << i + 1 << " inserido foi: " << vetor[i] <<endl;
           }
      }
};

int main(){

    int tamanho;

    cout << "Digite o tamanho do vetor: ";
    cin >> tamanho;
    cout << "Tamanho do vetor: " << tamanho << endl;

    int vetorDeInteiros[tamanho]; //Vetor com o tamanho especificado.

    Vetor objVetor(tamanho, vetorDeInteiros); //Instanciando a classe Vetor e passando as variáveis declaradas para seu construtor.

    objVetor.atribuir();
    objVetor.mostrar();

    system("pause");
    return 0;
}
    
09.03.2014 / 13:30