Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-11-2011, 18:43   #1
error 404
Senior Member
 
L'Avatar di error 404
 
Iscritto dal: Oct 2007
Messaggi: 648
[C++] Undefined reference su ctor/dtor e metodi

Salve ragazzi,
sto lavorando ad un progettino (allegato in maniera completa infondo) simil-tomboy con pattern observer (ridotto all'osso).
Quando vado a compilare mi da un "undefined reference.."

Codice:
build/Debug/GNU-Linux-x86/nota.o: In function `Nota':
/home/giovanni/NetBeansProjects/tomboy2/nota.cpp:7: undefined reference to `Subject::~Subject()'
/home/giovanni/NetBeansProjects/tomboy2/nota.cpp:18: undefined reference to `Subject::~Subject()'
build/Debug/GNU-Linux-x86/nota.o: In function `~Nota':
/home/giovanni/NetBeansProjects/tomboy2/nota.cpp:23: undefined reference to `Subject::~Subject()'
/home/giovanni/NetBeansProjects/tomboy2/nota.cpp:23: undefined reference to `Subject::~Subject()'
build/Debug/GNU-Linux-x86/nota.o:(.rodata._ZTV4Nota[vtable for Nota]+0x10): undefined reference to `Nota::registerObserver(Observer*)'
build/Debug/GNU-Linux-x86/nota.o:(.rodata._ZTV4Nota[vtable for Nota]+0x14): undefined reference to `Nota::removeObserver(Observer*)'
build/Debug/GNU-Linux-x86/nota.o:(.rodata._ZTV4Nota[vtable for Nota]+0x18): undefined reference to `Nota::notifyObservers() const'
I file da cui penso dipenda il problema sono:
nota.h
Codice:
#ifndef NOTA_H
#define	NOTA_H

#include "observer.h"
#include "subject.h"
#include <iostream>
#include <list>
#include <string>

using namespace std;

class Nota : public Subject {
public:
    Nota();
    Nota(string titolo, string testo);

    ~Nota();
    
    void stampaTitolo();
    void stampaTesto();
    void registerObserver( Observer* observer );
    void removeObserver( Observer* observer );
    void notifyObservers() const;

private:
    string _titolo, _testo;
};

#endif
nota.cpp
Codice:
#include "nota.h"
#include "observer.h"
#include "subject.h"
#include <iostream>
#include <string>

Nota::Nota(){
    string titolo;
    string testo;
    cout << "Inserisci titolo: " << endl;
    getline(cin,titolo);
    _titolo = titolo;
    cout << "Scrivi il testo della nota: " << endl;
    getline(cin,testo);
    _testo = testo;
}

Nota::Nota(string titolo, string testo){
    _titolo = titolo;
    _testo = testo;
}

Nota::~Nota(){
    cout << "Nota '" << _titolo << "' cancellata" << endl;
}

void Nota::stampaTitolo(){
    cout << _titolo << endl;
}

void Nota::stampaTesto(){
    cout << _testo << endl;
}

void Nota::registerObserver(Observer* observer){}
void Nota::removeObserver(Observer* observer){}
void Nota::notifyObservers() const{}
subject.h
Codice:
#ifndef SUBJECT_H
#define	SUBJECT_H

#include "observer.h"

class Subject{
protected:
    virtual ~Subject() = 0;

public:
    virtual void registerObserver( Observer* observer ) = 0;
    virtual void removeObserver( Observer* observer ) = 0;
    virtual void notifyObservers() const = 0;
};

#endif
Soprattutto non capisco quel riferimento al distruttore virtuale...

Sapete aiutarmi? grazie ciao
Allegati
File Type: zip prj.zip (2.5 KB, 0 visite)
error 404 è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2011, 22:54   #2
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da error 404 Guarda i messaggi
Soprattutto non capisco quel riferimento al distruttore virtuale...

Sapete aiutarmi? grazie ciao
Beh hai definito un distruttore astratto!
Il linker si lamenta che non riesce a trovarne una implementazione.

I distruttori non possono essere astratti, virtuali si ma una implemerntazione la devono avere!

Poi una osservazione: Subject è una interfaccia (definisce tutti metodi astratti), sarebbe meglio che il distruttore fosse pubblico.

Infine evita l'utilizzo dello using nei file header.
tomminno è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
MrBeast entra nel fintech: Beast Industr...
Arrivano i nuovi server Bare Metal 2026 ...
Stop alla distribuzione dei driver di st...
Serie TV God of War: scelto anche l'atto...
Riot Games dimezza il team di 2XKO dopo ...
FRITZ! in super offerta su Amazon: ripet...
L'AI doveva farci lavorare meno: e se st...
DREAME X50 Ultra Complete a 899€ su Amaz...
Rimodulazione TIM: aumenti fino a 2,99 e...
Amazon sblocca i prezzi con coupon e sco...
Action cam Insta360 in super offerta su ...
Fallout 76 Sorgenti Brucianti: tanta car...
Scope elettriche super potenti a confron...
Tutti i Google Pixel 10 sono scontati su...
Report Legambiente 2025: Palermo, Milano...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:56.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v