Pages: [1]   Go Down
Print
Author Topic: Problema esercizio  (Read 1910 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Giovi89
Apprendista Forumista
**
Offline Offline

Posts: 273


« on: 29-11-2011, 20:45:14 »

Salve ragazzi, volevo sapere dove sbaglio nel seguente codice?

poligono.h
Code:
#ifndef POLIGONO_H
#define POLIGONO_H

class poligono {
public:
    poligono(int lato);
    int lato;
    int perimetro(int lato );
   void informazioni();
 
};

#endif /* POLIGONO_H */

poligono.cpp
Code:
#include "poligono.h"
#include <stdlib.h>

poligono::poligono(int lato ) {
    lato=5;
}

int poligono::perimetro(int lato)
{
    return lato;
}
void poligono::informazioni()
{
    printf("%d",lato);
}


main.cpp
Code:
#include "poligono.h"
#include <cstdlib>
#include <stdio.h>

using namespace std;

int main(int argc, char** argv) {

    poligono p(5);
    p.perimetro(5);
   
    return 0;
}

Il problema del progetto è che non appena effettuo il build quest'ultimo non va a buon fine. Non riesco a capire il motivo in quanto il compilatore non mi dà altri errori. Illuminatemi. 
Logged
dontomas86
Matricola
*
Offline Offline

Gender: Male
Posts: 47


Skorpion


« Reply #1 on: 29-11-2011, 23:19:01 »

beh, nel main non vedo:
1- dove dichiari il poligono
poligono *a= new poligono(5);

2- hai due metodi che ti ritornano int ma li chiami senza nulla...
int c;
c=p->perimetro(5)

poi c'è un errore concettuale:
hai messo che il costruttore prende un parametro che poi non usa perché inizializzi il lato a 5, qualunque sia il parametro che passi

comunque di base c'è un codice seppur molto breve ma confuso!
non prenderla come offesa, ma cerco di farti notare gli errori
Logged

Ricevere lezioni di vita riguardo "forma e sostanza" da chi è incapace di usarle non ha prezzo!
Giovi89
Apprendista Forumista
**
Offline Offline

Posts: 273


« Reply #2 on: 30-11-2011, 15:02:29 »

Ciao, grazie delle correzioni ora provo se funziona. Comunque ho voluto scrivere questo  spezzone di codice per cominciare a capire come funzione l'ereditarietà in c++ però mi ero imbattuto in questo problema e non potevo andare avanti. 
Logged
Giovi89
Apprendista Forumista
**
Offline Offline

Posts: 273


« Reply #3 on: 30-11-2011, 18:23:44 »

Ho provato a fare le modifiche che mi hai consigliato però mi da un errore strano:

Code:
Undefined symbols:
  "ContatoreDoppio::ContatoreDoppio(int)", referenced from:
      _main in main.o
  "Contatore::Contatore(int)", referenced from:
      _main in main.o
  "Contatore::incrementaContatore()", referenced from:
      _main in main.o
  "Contatore::getValoreContatore()", referenced from:
      _main in main.o
      _main in main.o
      _main in main.o
      _main in main.o
  "ContatoreDoppio::incrementaContatore()", referenced from:
      _main in main.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[2]: *** [dist/Debug/GNU-MacOSX/contatore] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2

BUILD FAILED (exit value 2, total time: 118ms)

ho provato a cercarlo però non ho trovato nessuna soluzione, potreste dirmi come risolverlo? 
Logged
dontomas86
Matricola
*
Offline Offline

Gender: Male
Posts: 47


Skorpion


« Reply #4 on: 01-12-2011, 12:34:24 »

posta il codice...
Logged

Ricevere lezioni di vita riguardo "forma e sostanza" da chi è incapace di usarle non ha prezzo!
Giovi89
Apprendista Forumista
**
Offline Offline

Posts: 273


« Reply #5 on: 02-12-2011, 10:58:24 »

Ciao l'errore che avevo postato è relativo a un altro progetto ora ti posto l'errore relativo al codice scritto sopra dove ho apportato le modifiche che mi hai fatto notare:

Code:
Undefined symbols:
  "persona::getnome()", referenced from:
      _main in main.o
  "persona::geteta()", referenced from:
      _main in main.o
  "persona::getcognome()", referenced from:
      _main in main.o
  "persona::persona(int)", referenced from:
      _main in main.o
ld: symbol(s) not found
collect2: ld returned 1 exit status
make[2]: *** [dist/Debug/GNU-MacOSX/persona] Error 1
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2

BUILD FAILED (exit value 2, total time: 297ms)

parte cambiata:
main.cpp
Code:
#include "poligono.h"
#include <cstdlib>
#include <stdio.h>

using namespace std;

/*
 *
 */
int main(int argc, char** argv) {

    poligono *p = new poligono(5);
    int c;
    c = p->perimetro(8);
    p->informazioni();
   
   
    return 0;
}
Logged
havoc
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 224


« Reply #6 on: 02-12-2011, 14:28:14 »

a cosa serve using namespace std?
Logged

Giovi89
Apprendista Forumista
**
Offline Offline

Posts: 273


« Reply #7 on: 02-12-2011, 16:43:21 »

ciao, quello non serve a nulla. Me lo ha creato netbeans....cmq mi da sempre il solito errore...
Logged
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« Reply #8 on: 02-12-2011, 16:58:19 »

ciao, quello non serve a nulla. Me lo ha creato netbeans....cmq mi da sempre il solito errore...

No no serve  
Ora non ricordo dove ma se non includessi quella istruzione ad alcune funzioni(mi sembra quelle di input) dovresti sempre anteporre un' istruzione tipo ::std
Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
Pages: [1]   Go Up
Print
Jump to: