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

Σύνδεση αρχείων ( C++ ).


pbp

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

Δημοσ.

Πολύ περίεργο μου φαίνεται, έφτιαξα ένα project στο netbeans με τις κλασεις ακριβώς έτσι όπως τα πόσταρες, και δεν είχε κάποιο πρόβλημα περί link error. Εσύ με ποιό πρόγραμμα κάνεις compile,build.. Eκτός αν το δουλεύεις απο terminal / command promt

 

Με DEV C++ Δουλεύω...

ΑΑΑ και ξέχασα να αναφέρω ότι αν κάνω αυτό με το include"dokimi.cpp" σε ένα project δεν δουλεύει και πάλι...

Δεν μπορώ να καταλάβω τι συμβαίνει :(((((((((

Δημοσ.

@παπι

 

Αντίθετα με ότι πιστεύεται, οι οδηγίες που έδωσες σε προηγούμενο post ΔΕΝ δουλεύουν πάντα, δυστυχώς.

Π.χ. στο thread για το splay tree (εδώ : http://www.insomnia....%b7-splay-tree/)

που έθεσα κώδικα παρατήρησε ότι στο αρχείο με την main έχω κάνει include όχι μόνον το *.h file της κλάσης

αλλά και το *.cpp με την υλοποίησή της. Δηλ.

#include "SplayTree.h"

#include "SplayTree.cpp"

Φυσιολογικά, μόνον το *.h έπρεπε να αρκεί όπως είπες και όπως όντως συμβαίνει στις περισσότερες περιπτώσεις.

Aλλά εδώ, αν δεν βάλω το και το source της κλάσης, δηλ. το SplayTree.cpp, δίνει link error !!

Και βέβαια τα είχα και τα τρία στο project και στον ίδιο φάκελο (VS 2008).

Σκέφτηκα μήπως φταίει που έχω τους constructors στο *.h (ήταν πολύ μικροί και τους έβαλα εκεί).

Δοκίμασα λοιπόν να τους μεταφέρω στο .cpp ώστε το *.h να έχει καθαρά μόνον δηλώσεις. Το ίδιο τσαλίμι κάνει.

Δεν το έψαξα περισσότερο αφού δούλεψε με το include του cpp αλλά το ερωτηματικό παραμένει...

 

Aς δοκιμάσει ο φίλος να κάνει το ίδιο - δηλ. προσάρτηση και του *.cpp της κλάσης στο αρχείο με την main - μήπως δουλέψει...

 

-

 

Αν δε κανω λαθος, δεν μπορεις να κανεις object με templates. Δες STL ή boost που ολα ειναι inline σε ενα αρχειο (χωρις extension η stl και .hpp η boost)

 

 

@pbp Δεν κανεις κατι λαθος... Μηπως ειναι ωρα να δοκιμασεις καποιον αλλον compiler;

Να και μια ωραια εικονα

IncludeHeader.png

 

 

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

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

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