Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    55

    [c++] Errori in compilazione

    Salve Ragazzi,
    non capisco perchè mi dia questi errori..

    codice:
    [root@root Esame1]# g++ MailServer.cpp User.cpp main.cpp
    /tmp/ccU2q7ZU.o: In function `User::NM(User&)':
    User.cpp:(.text+0x1f5): undefined reference to `Message::Message()'
    User.cpp:(.text+0x225): undefined reference to `Message::setmess(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&)'
    /tmp/ccU2q7ZU.o: In function `User::MostraRicevuti()':
    User.cpp:(.text+0x318): undefined reference to `Message::print() const'
    /tmp/ccU2q7ZU.o: In function `User::MostraInviati()':
    User.cpp:(.text+0x38c): undefined reference to `Message::print() const'
    collect2: ld returned 1 exit status
    
    
    #ifndef USER_H
    #define USER_H
    #include <iostream>
    #include <string>
    #include <vector>
    #include "Message.h"
    using namespace std;
    
    class User{
    public:
        User();
        User(string,string,string);
        void NM(User&);
        void MostraRicevuti();
        void MostraInviati();
        string& getnome();
        ~User();
    private:
        string nick, nome, cognome;
        vector <Message> inviati, ricevuti;
    };
    
    #endif
    
    
    #include "User.h"
    
    User::User(){}
    
    User::User(string a, string b, string c):
        nick (a), nome(b), cognome(c){;}
        
    void User::NM(User& a){
        Message nuovo;
        string d7;
        getline (cin,d7);
        nuovo.setmess(d7);
        nuovo.dest=a.nome;
        nuovo.mitt=nome;
        inviati.push_back(nuovo);    
        a.ricevuti.push_back(nuovo);
    }
    
    void User::MostraRicevuti(){
        for (vector <Message>::iterator iter=ricevuti.begin(); iter!=ricevuti.end(); iter++){
            iter->print();
        }
    }
    
    void User::MostraInviati(){
        for (vector <Message>::iterator iter=inviati.begin(); iter!=inviati.end(); iter++){
            iter->print();
        }
    }
    
    string& User::getnome(){
        return nome;
    }
    
    User::~User(){cout<<"Utente eliminato"<<endl;}
    
    
    #ifndef MESSAGE_H
    #define MESSAGE_H
    #include <string>
    #include <vector>
    #include <iostream>
    #include "User.h"
    using namespace std;
    
    class Message{
    public:
        friend class User;
        Message();
        void setmess(string&);
        void print()const;
    private:
        string mitt, dest, mess, timestamp;
    };
    
    #endif
    
    
    #include "Message.h"
    
    Message::Message():
        mitt("-"), dest("-"), mess("-"), timestamp ("-"){;}
    
    void Message::print()const{
        cout<<"Mittente:"<<mitt<<endl;
        cout<<"Destinatario:"<<dest<<endl;
        cout<<"Messaggio:"<<mess<<endl;
        cout<<"Timestamp:"<<timestamp<<endl<<endl;
    }
    
    void Message::setmess(string& a){
        mess=a;
    }
    Mentre se provo a includere tutti i file header mi dice:
    [root@root Esame1]# g++ MailServer.cpp User.cpp main.cpp
    In file included from Message.h:7,
    from User.h:6,
    from User.cpp:1:
    MailServer.h:17: error: ‘User’ was not declared in this scope
    MailServer.h:17: error: template argument 1 is invalid
    MailServer.h:17: error: template argument 2 is invalid
    MailServer.h:18: error: ‘Message’ was not declared in this scope
    MailServer.h:18: error: template argument 1 is invalid
    MailServer.h:18: error: template argument 2 is invalid

    Why???
    Ultima modifica di vicio_93; 20-01-2015 a 12:59

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    55
    come non detto ho risolto.. Avevo dimenticato di compilare Message.cpp

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    55
    Perchè non riesce a leggere dallo stream la getline?? Per esempio nella funzione NM

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Quote Originariamente inviata da vicio_93 Visualizza il messaggio
    Perchè non riesce a leggere dallo stream la getline?? Per esempio nella funzione NM

    Dai maggiori dettagli ... così non vuol dire nulla ... cosa succede?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2014
    Messaggi
    55
    Ho un problema nella getline.. cioè arrivato alla getline non mi fa inserire valori dallo stream, sicuramente perchè nello stream ci sono già dei valori inseriti.. mentre se lo inserisco in un ciclo while quando immetto eof esce completamente dal programma..

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 © 2024 vBulletin Solutions, Inc. All rights reserved.