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

C++ Πως να ελέγξω στογμιότυπα?NULL????


Morfeus@kostas

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

Δημοσ.

Λοιπόν,

Εχω μια κλάση myclass,έχω κάνει #define NULL 0

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

 

Απλά γράφω αρχικά: myclass a=NULL;

 

'Έπειτα ανάλογα τη ροή του προγράμματος θα πάρει τιμή ή όχι.

 

Παρακάτω πρίν το τέλος της συνάρτησης ελέγχω με if(a==NULL) αν έχει πάρει τιμές ή όχι.

 

Φυσικά μου βγάζει λάθος :

"binary '==' : 'class tree_node' does not define this operator or a conversion to a type acceptable to the predefined operator"

 

Τί μπορώ να κάνω με το NULL ή πως μπορώ αποτελεσματικά να ελέγξω αν ένα στιγμιότυπο αν είναι κενό??????

 

Ευχαριστώ προκαταβολικά!

Δημοσ.

Φυσικά και σου βγάζει αυτό το λάθος γιατί πολύ απλά στην C εκτός του ότι το NULL είναι already defined σε 0 από την στιγμή που λές myclass a ουσιαστικά ορίζεις ένα Instance της myclass το οποίο δεν μπορεί να ειναι NULL αφού υπάρχει στην μνήμη. Το myclass * a όμως θα μπορούσε να είναι NULL γιατί δείχνει σε ένα Instance του myclass άρα θα μπορούσε να μην δείχνει πουθενά , κοινώς Περού. Ελπίζω τουλάχιστον να σε βοήθησα να καταλάβεις την διαφορά. Δεν γνωρίζω τι πάς να κάνεις για να σε βοηθήσω παραπέρα, δεν εξηγείς πολύ καλά ;)

  • 4 εβδομάδες αργότερα...
Δημοσ.

Gia na doulepseis me NULL kai na kaneis elegxo an ena istance einai NULL prepei na einai orismeno san pointer...

Dhladh myClass *a=NULL

Fysika meta prepei na kaneis kai new gia na ginei allocated sth memory

a=new myclass;

twra o elegxos if(a==NULL) tha sou deiksei an petyxe to new kai dhmiourghtyhike to instance a h an den yphxre free memory kai apetyxe...

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

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

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