Προς το περιεχόμενο

Μηνυμα Λάθους C++


PotirasK.O

Προτεινόμενες αναρτήσεις

Δημοσ.

Εχω την παρακατω κλάση:

 

 

>
[color="Red"]ΕΙΝΑΙ ΤΟ .h ΑΡΧΕΙΟ[/color]


#ifndef Teacher_h
#define Teacher_h

#include <iostream.h>


class T{

public:

T();

~T();

void setName(const string *name);

string *getName(void)const;

void setLastName(const string *lastName);

string *getLastName(void)const;

void setSystemCode(const string *systemCode);

string *getSystemCode(void)const;

public:
string *systemCode_;
string *lastName_;
string *name_;

};

#endif 

 

 

 

 

>
ΕΙΝΑΙ ΤΟ .cpp ΑΡΧΕΙΟ

#include "Teacher.h"

T::T(){


}

T::~ T(){



}



void T::setName(string *name){

*name_ = *name;
}


string T::getName(void)const{

return name_;

}


void T::setLastName(string *lastName){

*lastName_ = *lastName;

}


string T::getLastName(void){

return lastName_;

}


void T::setSystemCode(string *systemCode){

*systemCode_ = *systemCode;

}


string T::getSystemCode(void)const{

return systemCode_;

}

 

Οταν το τρεχω "χτυπάει" και μου εμφανιζει το παρακατω μηνυμα

 

[iLINK32 Error] Error: Unresolved external 'T::T()' referenced from C:\USERS\DEBUG\MAIN.OBJ

 

και

 

[iLINK32 Error] Error: Unresolved external 'T::~T()' referenced from C:\USERS\DEBUG\MAIN.OBJ

 

 

Για ποιο λόγο δεν ξερω!!!!

Τι να φταίει αραγε???

Δημοσ.
Εχω την παρακατω κλάση:

 

 

>
[color="Red"]ΕΙΝΑΙ ΤΟ .h ΑΡΧΕΙΟ[/color]


#ifndef Teacher_h
#define Teacher_h

#include <iostream.h>


class T{

public:

T();

~T();

void setName(const string *name);

string *getName(void)const;

void setLastName(const string *lastName);

string *getLastName(void)const;

void setSystemCode(const string *systemCode);

string *getSystemCode(void)const;

public:
string *systemCode_;
string *lastName_;
string *name_;

};

#endif 

 

 

 

 

>
ΕΙΝΑΙ ΤΟ .cpp ΑΡΧΕΙΟ

#include "Teacher.h"

T::T(){


}

T::~ T(){



}



void T::setName(string *name){

*name_ = *name;
}


string T::getName(void)const{

return name_;

}


void T::setLastName(string *lastName){

*lastName_ = *lastName;

}


string T::getLastName(void){

return lastName_;

}


void T::setSystemCode(string *systemCode){

*systemCode_ = *systemCode;

}


string T::getSystemCode(void)const{

return systemCode_;

}

 

Οταν το τρεχω "χτυπάει" και μου εμφανιζει το παρακατω μηνυμα

 

[iLINK32 Error] Error: Unresolved external 'T::T()' referenced from C:\USERS\DEBUG\MAIN.OBJ

 

και

 

[iLINK32 Error] Error: Unresolved external 'T::~T()' referenced from C:\USERS\DEBUG\MAIN.OBJ

 

 

Για ποιο λόγο δεν ξερω!!!!

Τι να φταίει αραγε???

 

Έχεις πολλά σφάλματα στις δηλώσεις των class functions μεταξύ του header file και του source file σου. Αλλού ορίζεις const το οποίο δεν περνάς στο source function declaration αλλού οριζείς function pointer* στο header και όχι στο source οπότε τελικά ο compiler σκάει.

 

Δες ξανά και προσεκτικά τα functions declarations σου μεταξύ header & source και το πρόβλημα θα διορθωθεί (για αρχή δες πως ορίζεις την setName στο header -void setName(const string *name);- και ύστερα στο source -void T::setName(string *name)-).

Δημοσ.

Επισης σου προτεινω να δηλωνεις τις μεταβλητες της κλασης ως private. Αυτο ειναι ενα απο τα κυτιοτερα συν των κλασεων.

 

 

Sent from my iPhone using Insomnia.app

Δημοσ.

Ριξτε αλλη μια ματια.Τα διορθωσα τα λαθη κ παλι το ιδιο σφάλμα μου βγαζει.

 

>
class Teacher{

public:

Teacher();

~Teacher();

void setName(const string *name);

string *getName(void)const;

void setLastName(const string *lastName);

string *getLastName(void)const;

void setSystemCode(const string *systemCode);

string *getSystemCode(void)const;

private:

string *systemCode_;
string *lastName_;
string *name_;

};

#endif // Teacher_h

 

 

 

>
#include "Teacher.h"

Teacher::Teacher(){


}

Teacher::~ Teacher(){



}



void Teacher::setName(const string *name){

*name_ = *name;
}


string* Teacher::getName(void)const{

return name_;

}


void Teacher::setLastName(const string *lastName){

*lastName_ = *lastName;

}


string* Teacher::getLastName(void){

return lastName_;

}


void Teacher::setSystemCode(const string *systemCode){

*systemCode_ = *systemCode;

}


string* Teacher::getSystemCode(void)const{

return systemCode_;

}

[iLINK32 Error] Error: Unresolved external 'Teacher::~Teacher()' referenced from C:\USERS\DESKTOP\DEBUG\MAIN.OBJ

[iLINK32 Error] Error: Unresolved external 'Teacher::Teacher()' referenced from C:\USERS\KIRIAKOS\DESKTOP\DEBUG\MAIN.OBJ

Δημοσ.
Ριξτε αλλη μια ματια.Τα διορθωσα τα λαθη κ παλι το ιδιο σφάλμα μου βγαζει.

 

>
class Teacher{

public:

Teacher();

~Teacher();

void setName(const string *name);

string *getName(void)const;

void setLastName(const string *lastName);

string *getLastName(void)const;

void setSystemCode(const string *systemCode);

string *getSystemCode(void)const;

private:

string *systemCode_;
string *lastName_;
string *name_;

};

#endif // Teacher_h

 

 

 

>
#include "Teacher.h"

Teacher::Teacher(){


}

Teacher::~ Teacher(){



}



void Teacher::setName(const string *name){

*name_ = *name;
}


string* Teacher::getName(void)const{

return name_;

}


void Teacher::setLastName(const string *lastName){

*lastName_ = *lastName;

}


string* Teacher::getLastName(void){

return lastName_;

}


void Teacher::setSystemCode(const string *systemCode){

*systemCode_ = *systemCode;

}


string* Teacher::getSystemCode(void)const{

return systemCode_;

}

[iLINK32 Error] Error: Unresolved external 'Teacher::~Teacher()' referenced from C:\USERS\DESKTOP\DEBUG\MAIN.OBJ

[iLINK32 Error] Error: Unresolved external 'Teacher::Teacher()' referenced from C:\USERS\KIRIAKOS\DESKTOP\DEBUG\MAIN.OBJ

 

Ορίζεις το "string *getLastName(void)const;" στο header αλλά στο source ορίζεται ως "string* Teacher::getLastName(void)". Αν το διορθώσεις, τότε τουλάχιστον σε C++ Builder 2009, ο κώδικας περνάει κανονικά.

Δημοσ.

Και με Visual C++ περναει κανονικά αν κάνεις την αλλαγή που είπε ο direcx. Βασικά κάνε clean το project και μετά ξανά build μήπως και φύγουν τα μηνύματα που έχεις.

Δημοσ.

ΟΚ με την παραπάνω κλάση.Εδω πάλι γιατι μου βγαζει το ιδιο error???

 

>
#ifndef TeacherAddress_h
#define TeacherAddress_h

#include "ITteacherAddress.h"


class TeacherAddress : virtual public ITteacherAddress {

public:

TeacherAddress(string *newTown,string *newStreet,string *newNumber);

virtual ~TeacherAddress();

virtual void setTown(string *town);

virtual string *getTown(void)const;

virtual void setStreet(string *street);

virtual string *getStreet(void)const;

virtual void setNumber(string *number);

virtual string *getNumber(void)const;

private:

string *town_;
string *street_;
string *number_;
};

#endif // TeacherAddress_h

 

 

 

 

>
#include "TeacherAddress.h"


TeacherAddress::TeacherAddress(string *newTown,string *newStreet,string *newNumber){

setTown(newTown);
setStreet(newStreet);
setNumber(newNumber);
}

TeacherAddress::~TeacherAddress(){

delete town_;
delete street_;
delete number_;
}



void TeacherAddress::setTown(string *newTown){

*town_= new string (*newTown);
}


string *TeacherAddress::getTown()const{

return town_;

}


void TeacherAddress::setStreet(string *newStreet){

*street_ = new string (*newStreet);
}


string *TeacherAddress::getStreet()const{

return street_;
}


void TeacherAddress::setNumber(string *newNumber){

*number_ = new string (*newNumber);

}


string *TeacherAddress::getNumber()const{

return number;
}

 

[iLINK32 Error] Error: Unresolved external 'TeacherAddress::~TeacherAddress()' referenced from C:\USERS\DESKTOP\FINAL\DEBUG\MAIN.OBJ

 

[iLINK32 Error] Error: Unresolved external 'TeacherAddress::TeacherAddress()' referenced from C:\USERS\DESKTOP\FINAL\DEBUG\MAIN.OBJ

 

Τι φταιει???

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...