|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Jun 2010
Messaggi: 7
|
[C++] problema linker
uso code blocks,
ho creato una classe inserendo le dichiarazioni di costruttori e funzioni membro in un file .h mentre le definizioni le ho inserite in un file .cpp. vorrei sapere perche quando vado a compilare un programma di test della classe il file .cpp dove ci sono le implementazioni non viene caricato! me ne sono accorto mettendo le implementazioni nel file .h infatti in questo modo funziona. perchè non riesco a usare la compilazione separata? il file header è: #include <string> using namespace std; class Person { public: // costruttore predefinito Person(); //costruttore con parametri Person(string pname, int page); //funzione nome string get_name() const; //funzione età int get_age() const; private: string name; int age; // 0 se ignota }; il file di implementazione .cpp è: #include "PersonClass.h" using namespace std; Person::Person() { age=0; } Person::Person(string pname, int page) {name=pname; age=page; } string Person::get_name() const {return name; } int Person::get_age() const {return age; } il file di test è: #include <iostream> #include "PersonClass.h" using namespace std; int main() { string name; int age; cout<<"Inserisci il nome:"; cin>>name; cout<<"Inserisci eta:"; cin>>age; Person head(name, age); cout<<"I dati inseriti sono: \n"<<"Name: "<<head.get_name()<<"\n"; cout<<"Eta: "<<head.get_age(); return 0; } |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Codice:
#ifndef PERSON_H #define PERSON_H ... include file... #endif
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:17.