c++ operator overloading

Antonis Valakas avalak at intracom.gr
Thu Feb 24 16:32:51 EET 2005


>int  &operator [] (int i) {
>if (i>size) std::cout<<"Index exceeds matrix dimensions."<<std::endl;}
>
>};
>
>
Τι θα σου επιστρέψει εδώ αυτή η method? έναν pointer σε int (ορίζεται ως
int &operator[]). Στο body της method, που είναι το return
<some_int_pointer>; ΠΟΥΘΕΝΑ, άρα μόλις κάνει exit, θα επιστρέψει έναν
pointer στο... κάπου.

>
>aaa[12]=3;
>
>
>
Aαααα, πολύ ωραία... Το aaa[12] ουσιαστικά μεταφράζεται σαν call to (int
&operator[](12)), το οποίο, ότι και να γίνει, θα επιστρέψει έναν int
pointer στο... κάπου.
Εκεί λοιπόν, το ωραίο προγραμματάκι προσπαθεί να αντιστοιχίσει στη θέση
μνήμης που δείχνει το aaa[12], δηλαδή στο... κάπου, τον integer 3. Τι
παθαίνουμε τότε, όταν αντιστοιχούμε στο... κάπου, ...κάτι;

ΑΥΤΟ:

>Segmentation fault
>
>

Από τέτοια μικρά λαθάκια βγάζουν λεφτά όσοι πουλάνε security... Προσοχή
στο πως γράφετε κώδικα!

--

Antonis Valakas

Systems Consultant
Multiservice Networks - Intracom SA

email: avalak_at_intracom.gr

  www: www.intracom.gr


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.hellug.gr/pipermail/linux-greek-users/attachments/20050224/656b9fb2/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 252 bytes
Desc: OpenPGP digital signature
URL: <http://lists.hellug.gr/pipermail/linux-greek-users/attachments/20050224/656b9fb2/attachment.pgp>


More information about the Linux-greek-users mailing list