Newsgroup: it.comp.lang.c++
Titolo: Compilazione dell'Interfaccia

Non riesco a compilare l'interfaccia di una semplice classe con il DJGPP.
L'ho scritta con un editor di testo e l'ho salvata con estensione .CC ma
alla compilazione mi vengono un sacco di msg e non viene prodotto il file
Object.
Chi mi sa aiutare?
Stefano

 ha scritto nel messaggio
news:8s9vnd$28t$1...@nslave3.tin.it...


 ha scritto nel
messaggio news:8s9vr4$2d4$1...@nslave3.tin.it...

Hai fatto gpp -c tuo_file.cpp ?
Dovresti ottenere tuo_file.o
Se non è così, significa che il tuo codice contiene degli
errori (oppure usa features C++ non ancora supportate
dal compilatore).
Manlio Perillo

 dal compilatore).
Ho provato ma continua a dare gli stessi errori.
Ecco il codice del file:
#include <iostream.h>
#include "string6.h"
#include "dieta1.h"
 Alimento::Alimento();
 {
  m_Nome = "";
  m_Proteine = 0;
  m_Grassi = 0;
  m_Carboidrati = 0;
  m_Calorie = 0;
 };
 Alimento::Alimento(string Nome, short Proteine, short Grassi, short
Carboidrati, short Calorie);
 {
  m_Nome = Nome;
  m_Proteine = Proteine;
  m_Grassi = Grassi;
  m_Carboidrati = Carboidrati;
  m_Calorie = Calorie;
 };
 void Alimento::Display()
 {
  cout<<"Nome: ";
  cout<<Nome<<endl;
  cout<<"Proteine: ";
  cout<<Proteine<<endl;
  cout<<"Grassi: ";
  cout<<Grassi<<endl;
  cout<<"Carboidrati: ";
  cout<<Carboidrati<<endl;
  cout<<"Calorie: ";
  cout<<Calorie<<endl;
  return;
 };
Stefano Serni

  };
...non ti pare di avere un po' esagerato con i punti e virgola ? ;-)
Massimo

Il punto e virgola dopo i due costruttori dici?
Hai ragione, lì non li dovevo mettere....però non me lo compila lo stesso
:-|
Ecco la nuova versione:
#include <iostream.h>
#include "string6.h"
#include "dieta1.h"
 Alimento::Alimento()
 {
  m_Nome = "";
  m_Proteine = 0;
  m_Grassi = 0;
  m_Carboidrati = 0;
  m_Calorie = 0;
 };
 Alimento::Alimento(string Nome, short Proteine, short Grassi, short
Carboidrati, short Calorie)


 :-|
Ehm, no, non hai capito: quelle che stai definendo sono *FUNZIONI* (sei
fuori dalle dichiarazioni), quindi, come per tutte le funzioni del mondo,
non necessitano di punto e virgola alla fine :-)
Massimo

  };
Guido

 ha scritto nel messaggio
news:8sdj1a$480$1...@news.mclink.it...


 ha scritto nel messaggio
news:39EB03B7...@cern.ch...



Manlio Perillo

  }
rerturn 0; 
e' un errore di grammatica (non esiste la keyword rerturn!). Comunque,
non e' necessario precisare che int main() ritorna 0, e' un
comportamento di default.

 ha scritto nel messaggio
news:39EC0C86...@cern.ch...


 >  }
Ok
grazie!
Stefano

 comportamento di default.
Ok.
Non sono sicuro se string6.h mi serve o no (ved. cosa dico nel msg a
Manlio).
Comunque non vorrei avere seminato un po' di caos tra chi mi vuole
gentilmente aiutare, ma a questo punto era meglio forse se vi chiedevo
subito all'inizio un piccolo esempio di come si scrive una semplicissima
classe, si dichiarano sia i costruttori che le funzioni membro e le
variabili, si implementa quello che c'è da implementare e si scrive un
semplicissimo programma principale che usa quella classe, ma mi sembrava di
pretendere troppo.
In ogni caso, se c'è qualcuno che se la sente ben venga, magari usando come
esempio proprio quello a cui avevo pensato io: fare una lista di alimenti
(visti come oggetti della calsse Alimento) e visualizzarla sullo schermo del
computer.
grazie a tutti!
Stefano

 
Ti consiglio, appena puoi, di passare a std::string. Per farlo, devi 
usare la direttiva 
#include <string>
invece della direttiva 
#include "string6"
e devi scrivere nel tuo file 
using std::string.
In questo modo includi il file string della libreria standard che
contiene l'interfaccia alla classe string dichiarata nel namespace std,
e dichiari che vuoi usare la classe string dichiarata nel namespace std.
Sembra magia, ma funziona...

 Manlio).
Se non lo usi, non lo includere.
Manlio Perillo




 short
