Visualizzazione dei risultati da 1 a 5 su 5

Visualizzazione discussione

  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

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.