Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [c++] problema con "puntatori ad oggetti"

    Ho un problemini ke ho commentato nel listato, qualcuno puo darmi una mano leggendo il commento????



    codice:
    #include <iostream.h>
    using namespace std;
    
    class esempio {
    	int num;
    public:
    	void set_num(int val) {
    		num=val;
    	};
    	void show_num() {
    		cout << num << "\n";
    	};
    };
    
    
    
    
    int main() {
    esempio ob[2], *p;
    
    ob[0].set_num(10);
    ob[1].set_num(20);
    
    
    cout << ob << "\n\n";
    cout << (ob+1) << "\n\n";
    p=&ob[0]; // il compilatore mi da un errore se invece di mettere &ob[0] metto &ob... come mai? non è cmq un puntatore all'inizio dell'array????
    p->show_num();
    
    cout << "\n\n" << p << "\n\n";
    p++;
    cout << "\n\n" << p << "\n\n";
    
    p->show_num();
    
    p--;
    
    p->show_num();
    
    int numero;
    cin >> numero;
    return 0;
    };

  2. #2
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    se non sbaglio, se scrivi &ob[0] ottieni l'indirizzo in memoria di un array(un array è un puntatore al suo primo elemento), la soluzione potrebbe essere far diventare p un puntatore a puntatore:

    codice:
    esempio **p;
    e dopo quando chiami i metodi devi deferenziarlo prima di usare l'operatore freccia:

    codice:
    (*p)->showNum();
    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  3. #3
    Utente di HTML.it L'avatar di anx721
    Registrato dal
    Apr 2003
    Messaggi
    2,352
    Nella riga

    p=&ob[0];

    non devi scrivere &ob ma ob, perche come hai detto tu, ob, essendo un array, ovvero un puntatore al primo elemento dell'array, è già esso stesso un puntatore, quindi non devi usare l'operatore &, altrimenti ottieni l'indirizzo della variabile ob, ovvero un punatore a puntarore all'oggetto.

    Sun Certified Java Programmer

    EUCIP Core Level Certified

    European Certification of Informatics Professionals

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.