• Downloads
  • ! Read Me !
  • Μαθήματα
  • Φοιτητικά
  • Τεχνικά Θέματα
  • Συζητήσεις
  • Happy Hour!
  • About THMMY.gr
 V  < 
Search:  
Welcome, Guest. Please login or register.
June 17, 2025, 19:47:14 pm

Login with username, password and session length
Links
  Thmmy.gr portal
   Forum
   Downloads
   Ενεργ. Λογαριασμού
   Επικοινωνία
  
  Χρήσιμα links
   Σελίδα τμήματος
   Βιβλιοθήκη Τμήματος
   Elearning
   Φοιτητικά fora
   Πρόγραμμα Λέσχης
   Πρακτική Άσκηση
   Ηλεκτρονική Εξυπηρέτηση Φοιτητών
   Διανομή Συγγραμμάτων
   Ψηφιακό Καταθετήριο Διπλωματικών
   Πληροφορίες Καθηγητών
   Instagram @thmmy.gr
   mTHMMY
  
  Φοιτητικές Ομάδες
   ACM
   Aristurtle
   ART
   ASAT
   BEAM
   BEST Thessaloniki
   EESTEC LC Thessaloniki
   EΜΒ Auth
   IAESTE Thessaloniki
   IEEE φοιτητικό παράρτημα ΑΠΘ
   SpaceDot
   VROOM
   Panther
  
Πίνακας Ελέγχου
Welcome, Guest. Please login or register.
June 17, 2025, 19:47:14 pm

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
Πρακτική Άσκηση ΤΗΜΜΥ 201...
by chris_p30
[Today at 19:46:54]

Ισραήλ - Ιράν: Πόλεμος στ...
by Yamal
[Today at 19:07:04]

[Γραφική] Λυμένα θέματα
by okanpala
[Today at 18:56:22]

Τι ακούτε αυτήν τη στιγμή...
by Katarameno
[Today at 14:25:00]

Αντικατάστασης πυκνωτή σε...
by george14
[Today at 13:58:20]

Πότε θα βγει το μάθημα; -...
by tzortzis
[Today at 13:19:53]

Αποτελέσματα Εξεταστικής ...
by george14
[Today at 12:08:25]

[ΨEE] Γενικές απορίες και...
by Juror8
[Today at 12:06:57]

[Οργάνωση Υπολογιστών] Γε...
by RAFI
[June 16, 2025, 22:46:54 pm]

[Σ.Π.Η.Ε.] Γενικές απορίε...
by Nikos_313
[June 16, 2025, 19:49:00 pm]

[ΘΤΠΑ] Γενικές απορίες κα...
by Nikos_313
[June 16, 2025, 16:56:56 pm]

[Εφ.Θερμοδυναμική] Γενικέ...
by Λαμπτήρας
[June 16, 2025, 15:55:08 pm]

[Αρχές Οικονομίας] Να επι...
by _Trob
[June 16, 2025, 13:28:21 pm]

[Σ.Α.Π.Γ.] Εργασία 2025
by Nikos_313
[June 16, 2025, 12:13:45 pm]

[Διανεμημένη Παραγωγή] Γε...
by Διάλεξις
[June 16, 2025, 01:56:37 am]

[Σ.Π.Η.Ε.] Παλιά θέματα -...
by nmpampal
[June 15, 2025, 06:43:15 am]

Το thmmy.gr στο instagram...
by Mr Watson
[June 15, 2025, 00:50:23 am]

[Λογισμός ΙΙ] Απορίες σε...
by el mariachi
[June 14, 2025, 20:47:07 pm]

ΠΡΟΣΟΧΗ στο ανέβασμα θεμά...
by tzortzis
[June 14, 2025, 16:54:08 pm]

Ρυθμίσεις Θεμάτων της Ανώ...
by el mariachi
[June 14, 2025, 11:56:45 am]
Στατιστικά
Members
Total Members: 9961
Latest: Poli
Stats
Total Posts: 1426694
Total Topics: 31710
Online Today: 224
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 67
Guests: 139
Total: 206
elias_farhood
xarisagraf
chris_p30
kkotsopo
george14
Cersei Tsoulannister
redwolf
dkoukn
Ariadni
gpapmtb
antontsiorvas
Elenit
statiris
kalantzopoulos
bsp
mpournaz
dimitrisif
kokkinosgior
soktas
kpapama
evangeliaap
gianst
fpapat
lapin
MarakiT
tasos potsakis
Χρήστος Κίτσος
user182
Sofiana
Athinaaz
telhs
anastas1a
christina02
makis1941
dem05
tzortzis
GeorgeChri
artemissamaras_
spoun
Sanaia
gianniss
evitzv
ellimoschou
gstom
kstavroulis
AggelosZ
Papalamprous humor
Nicotre
Nikospneumatikos
natavhoo
jimalexoud
akpapako
Alex Kosmas
PAPARI69
soti
acolak
airam
aachmet
JiMan5
xanthosp
akiousia
Thanasiscon1
pavlaras
Εμφάνιση

Νέα για πρωτοετείς
Είσαι πρωτοετής;... Καλώς ήρθες! Μπορείς να βρεις πληροφορίες εδώ. Βοήθεια για τους καινούργιους μέσω χάρτη.
Κατεβάστε εδώ το Android Application για εύκολη πρόσβαση στο forum.
Ανεβάζετε τα θέματα των εξετάσεων στον τομέα Downloads με προσοχή στα ονόματα των αρχείων!

Νέα!
Ανεβάζετε τα θέματα των εξετάσεων στον τομέα Downloads
με προσοχή στα ονόματα των αρχείων!
THMMY.gr > Forum > Μαθήματα Βασικού Κύκλου > 2ο Εξάμηνο > Αντικειμενοστραφής Προγραμματισμός (Moderators: chatzikys, tzortzis) > [C++] Εργασία Α (2011-12)
0 Members and 1 Guest are viewing this topic.
Pages: 1 ... 4 5 [6] 7 8 Go Down Print
Author Topic: [C++] Εργασία Α (2011-12)  (Read 12324 times)
pepper ann
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 1132



View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #75 on: November 18, 2011, 23:21:29 pm »

Quote from: ValmadiaN on November 18, 2011, 23:20:06 pm
Quote from: pentium4 on November 18, 2011, 23:05:30 pm
το βαλα δυναμικα απλα εβαλα οριο 10 (counter)  :'( :'( :'(
κοπος 2 ημερων  :'( :'(

Γιατί δεν τον δηλώνεις μέσα στην κλάση σου σε στυλ:

int friends[10];

και να ξεμπερδεύεις;
+1
Logged
Andre
Θαμώνας
****
Gender: Male
Posts: 370


"there, a happy river, oh what a well-timed river"


View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #76 on: November 19, 2011, 13:13:22 pm »

Ορίζω έναν pointer σε αντικείμενο.
Δεσμεύω δυναμικά μνήμη, μέσω της malloc, ίση με το μέγεθος ενός αντικειμένου (το αντικείμενο δεν έχει φυσικά δημιουργηθεί ακόμα).
Για την εγγραφή δεύτερου μέλους χρειάζεται να χρησιμοποιήσω την realloc για να δεσμεύσω μνήμη για ένα ακόμη αντικείμενο; Ή μπορώ να ξαναχρησιμοποιήσω την malloc δεσμεύοντας μεγαλύτερη μνήμη από πριν (με τη χρήση ενός counter);
Σε τί διαφέρουν οι δύο υλοποιήσεις (εάν βέβαια μπορούν να γίνουν);
Logged
christineL
Καταξιωμένος/Καταξιωμένη
***
Posts: 294



View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #77 on: November 19, 2011, 13:27:33 pm »

Και εγω ετσι το εκανα και χρησιμοποιησα realloc καθε φορα που εγγραφοταν νεο μελος. Λένε όμως κάποιοι πως δεν γίνεται να λειτουργησει αυτο δεδομένου ότι χρησιμοποιουμε κλάσεις και πρεπει ν δουλεψουμε με new και delete. Τώρα τι ισχυει δεν ξερω γτ ο Κορτεσης απλα ανεφερε οτι υπαρχουν(και δεν τις προτιμα  Cheesy ) ..αλλα δεν θα κατσω και να σκασω. Ας ειναι λαθος.
Logged

Η πίστη είναι εντάξει γι'αυτούς που την έχουν.
Μόνο μην τη φορτώνετε σ'εμένα.
Έχω περισσότερη πίστη στον υδραυλικό μου
απ'ότι στην αιώνια ύπαρξη.
Οι υδραυλικοί κάνουν καλή δουλειά.
Αφήνουν τα σκατά να κυλούν!
Andre
Θαμώνας
****
Gender: Male
Posts: 370


"there, a happy river, oh what a well-timed river"


View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #78 on: November 19, 2011, 14:01:58 pm »

Quote from: christineL on November 19, 2011, 13:27:33 pm
Και εγω ετσι το εκανα και χρησιμοποιησα realloc καθε φορα που εγγραφοταν νεο μελος. Λένε όμως κάποιοι πως δεν γίνεται να λειτουργησει αυτο δεδομένου ότι χρησιμοποιουμε κλάσεις και πρεπει ν δουλεψουμε με new και delete. Τώρα τι ισχυει δεν ξερω γτ ο Κορτεσης απλα ανεφερε οτι υπαρχουν(και δεν τις προτιμα  Cheesy ) ..αλλα δεν θα κατσω και να σκασω. Ας ειναι λαθος.

Δηλαδή μπορούμε να χρησιμοποιήσουμε τις new και delete; Γιατί έχω την εντύπωση (από πέρυσι νομίζω), ότι αρχικά ζητά να χρησιμοποιήσουμε τις συναρτήσεις της C.

Αλλάζω το ερώτημά μου ως εξής;
Έστω ότι χρησιμοποιώ malloc για τη δέσμευση χώρου ίσος με ένα αντικείμενο:
p=(melos*)malloc(sizeof(melos));
όπου p ο pointer σε αντικείμενο και melos το όνομα της κλάσης (που ορίζει ένα νέο τύπο δεδομένων).
Μπορώ έπειτα να γράψω το εξής:
p=(melos*)malloc(2*sizeof(melos)); ?

Έτσι όπως το βλέπω, ουσιαστικά ξαναδεσμεύω τον ίδιο χώρο στη μνήμη (γίνεται?) και έναν επιπλέον ίσο με τον πρώτο.
Logged
Ναταλία
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 1209



View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #79 on: November 19, 2011, 14:36:14 pm »

Quote from: Andre on November 19, 2011, 13:13:22 pm
Ορίζω έναν pointer σε αντικείμενο.
Δεσμεύω δυναμικά μνήμη, μέσω της malloc, ίση με το μέγεθος ενός αντικειμένου (το αντικείμενο δεν έχει φυσικά δημιουργηθεί ακόμα).

χμ, πως οριζεις pointer σε αντικειμενο χωρις να εχεις δημιουργησει το αντικειμενο??  Huh
Logged
Andre
Θαμώνας
****
Gender: Male
Posts: 370


"there, a happy river, oh what a well-timed river"


View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #80 on: November 19, 2011, 14:46:13 pm »

Βλέπω για παράδειγμα σε αυτό το λινκ: http://dmst.aueb.gr/dds/c/ptr/malloc.htm, η reallloc() να επιστρέφει τον ίδιο pointer με αυτόν που δείχνει το πρώτο byte της περιοχής που δέσμευσε η malloc():

iptr = (int *)realloc(iptr, 20 * sizeof(int));

Εάν χρησιμοποιούσα στη θέση της την malloc(), τί διαφορά θα είχα; Π.χ. το "iptr[0] to iptr[9] retain old values" δε θα ίσχυε πάλι;
Logged
nikitas350
Καταξιωμένος/Καταξιωμένη
***
Posts: 201



View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #81 on: November 19, 2011, 14:56:07 pm »

Quote from: Andre on November 19, 2011, 14:01:58 pm
Quote from: christineL on November 19, 2011, 13:27:33 pm
Και εγω ετσι το εκανα και χρησιμοποιησα realloc καθε φορα που εγγραφοταν νεο μελος. Λένε όμως κάποιοι πως δεν γίνεται να λειτουργησει αυτο δεδομένου ότι χρησιμοποιουμε κλάσεις και πρεπει ν δουλεψουμε με new και delete. Τώρα τι ισχυει δεν ξερω γτ ο Κορτεσης απλα ανεφερε οτι υπαρχουν(και δεν τις προτιμα  Cheesy ) ..αλλα δεν θα κατσω και να σκασω. Ας ειναι λαθος.

Δηλαδή μπορούμε να χρησιμοποιήσουμε τις new και delete; Γιατί έχω την εντύπωση (από πέρυσι νομίζω), ότι αρχικά ζητά να χρησιμοποιήσουμε τις συναρτήσεις της C.

Αλλάζω το ερώτημά μου ως εξής;
Έστω ότι χρησιμοποιώ malloc για τη δέσμευση χώρου ίσος με ένα αντικείμενο:
p=(melos*)malloc(sizeof(melos));
όπου p ο pointer σε αντικείμενο και melos το όνομα της κλάσης (που ορίζει ένα νέο τύπο δεδομένων).
Μπορώ έπειτα να γράψω το εξής:
p=(melos*)malloc(2*sizeof(melos)); ?

Έτσι όπως το βλέπω, ουσιαστικά ξαναδεσμεύω τον ίδιο χώρο στη μνήμη (γίνεται?) και έναν επιπλέον ίσο με τον πρώτο.

Η malloc σου δεσμεύει απλά μνήμη και σου επιστρέφει έναν void pointer που δείχνει στην μνήμη που μόλις δέσμευσες. Τελος πάντων, αν γράψεις:

p=(melos*)malloc(sizeof(melos));
p=(melos*)malloc(2*sizeof(melos));

Τότε έχει δεσμεύτει ένα κομμάτι μνήμης ίσο με sizeof(melos) και ένα κομμάτι μνήμης ίσο με 2*sizeof(melos), και ο pointer σου δείχνει στο 2ο. Βέβαια πρίν τρέξεις την δεύτερη εντολή θα έπρεπε να έκανες free(p); γιατί τώρα έχεις δεσμεύσει ένα κομμάτι μνήμης και έχεις χάσει τον pointer που δείχνει σε αυτό (δηλαδή δεν μπορείς πλέον να το βρεις).

Της malloc δεν της ενδιαφέρει τι είναι αυτό που δεσμεύει, ούτε και καλεί constructor όταν δημιουργεί ένα αντικείμενο. Θα μπορούσες να τρέξεις π.χ. και αυτό το κομμάτι κώδικα χωρίς πρόβλημα:

p=(melos*)malloc(sizeof(int));

Βέβαια όταν θα πήγαινες να προσπελάσεις το υποτιθέμενο αντικείμενο που δείχνει η p θα είχες πρόβλημα, γιατί το μέγεθος της μνήμης που δέσμευσες είναι μικρότερο από το μέγεθος του αντικειμένου. Γενικά η malloc δεν πρέπει να χρησιμοποιείται στην C++.
Logged
zisis00
Καταξιωμένος/Καταξιωμένη
***
Posts: 176


View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #82 on: November 19, 2011, 15:19:04 pm »

Quote from: christineL on November 19, 2011, 13:27:33 pm
Και εγω ετσι το εκανα και χρησιμοποιησα realloc καθε φορα που εγγραφοταν νεο μελος. Λένε όμως κάποιοι πως δεν γίνεται να λειτουργησει αυτο δεδομένου ότι χρησιμοποιουμε κλάσεις και πρεπει ν δουλεψουμε με new και delete. Τώρα τι ισχυει δεν ξερω γτ ο Κορτεσης απλα ανεφερε οτι υπαρχουν(και δεν τις προτιμα  Cheesy ) ..αλλα δεν θα κατσω και να σκασω. Ας ειναι λαθος.

Τελικά γίνεται και με malloc/realloc (έτσι το έκανα :p). Η(βασική) διαφορά τους απο την new είναι ότι η new καλέι και το constructor (πιο βαθια ανάλυση στο site του κατασκευαστή http://www2.research.att.com/~bs/bs_faq2.html#malloc Tongue). Πάντως αν χρησιμοποιείσει κάποιος malloc να προτιμίσει να δηλώσει τα username, password, login name, ως char * και όχι ως string όπως εγώ γιατί θα έχει μλν θεματάκι.

Quote from: Andre on November 19, 2011, 14:46:13 pm
Βλέπω για παράδειγμα σε αυτό το λινκ: http://dmst.aueb.gr/dds/c/ptr/malloc.htm, η reallloc() να επιστρέφει τον ίδιο pointer με αυτόν που δείχνει το πρώτο byte της περιοχής που δέσμευσε η malloc():

iptr = (int *)realloc(iptr, 20 * sizeof(int));

Εάν χρησιμοποιούσα στη θέση της την malloc(), τί διαφορά θα είχα; Π.χ. το "iptr[0] to iptr[9] retain old values" δε θα ίσχυε πάλι;

Θεωρητικά τουλάχιστον όχι. Η δουλεία της malloc είναι να σου δεσμεύει memory όπου βρει στο heap, χωρίς να την ενδιαφέρουν τα δεδομένα σου. ( Με πρόλαβε ο Νικήτας σχετικά με αυτό)

Επίσης η malloc στην C++ μάλλον χρησιμοποιείται για πολύ low-level δουλείες. Τώρα αν όντως ο Κορτέσης είπε ότι "προτιμα την malloc στην C++", μάλλον έρχεται σε αντιπαράθεση με τον δημιουργό της που αναφέρει
"Don’t use malloc(). The new operator (§6.2.6) does the same job better, and instead of malloc.  Instead of realloc try a vector."


Logged
raf
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 130


do it well...!


View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #83 on: November 19, 2011, 18:29:43 pm »

ρε παιδια να ρωτησω...login name kai password του διαχειρηστη απο που το ζηταμε???
Logged
pentium4
Veteran
Καταστραμμένος
******
Posts: 7940


εφακ


View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #84 on: November 19, 2011, 18:30:09 pm »

Quote from: raf on November 19, 2011, 18:29:43 pm
ρε παιδια να ρωτησω...login name kai password του διαχειρηστη απο που το ζηταμε???

το εκανα με #define
δε ξερω αν στεκει παντως
Logged

https://www.youtube.com/watch?v=doMu-YNc4wM&feature=emb_title

τιρκουαζ στοκος
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Female
Posts: 570


respect se kathe alitossa


View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #85 on: November 19, 2011, 18:50:38 pm »

Quote from: raf on November 19, 2011, 18:29:43 pm
ρε παιδια να ρωτησω...login name kai password του διαχειρηστη απο που το ζηταμε???
Μπορεις και μεσα στο while στην main κατευθειαν.
Logged

hmmy-ksirafaki
raf
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 130


do it well...!


View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #86 on: November 19, 2011, 19:37:00 pm »

ayto me tous filous  pws to kaneis;
για παραδειγμα ας υποθεσουμε οτι εγω γραφω babis πως θα δω αυτος υπαρχει?
θα το κανω απο την main...? cool
Logged
Andre
Θαμώνας
****
Gender: Male
Posts: 370


"there, a happy river, oh what a well-timed river"


View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #87 on: November 19, 2011, 19:42:36 pm »

Quote from: zisis00 on November 19, 2011, 15:19:04 pm
...Πάντως αν χρησιμοποιείσει κάποιος malloc να προτιμίσει να δηλώσει τα username, password, login name, ως char * και όχι ως string όπως εγώ γιατί θα έχει μλν θεματάκι.

Είναι τα λεγόμενα "κυριολεκτικά αλφαριθμητικά" που λέει στο βιβλίο του Schildt, σελ.147; Στις σημειώσεις πού υπάρχει αυτή η δήλωση;
Logged
τιρκουαζ στοκος
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Female
Posts: 570


respect se kathe alitossa


View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #88 on: November 19, 2011, 19:49:37 pm »

Quote from: raf on November 19, 2011, 19:37:00 pm
ayto me tous filous  pws to kaneis;
για παραδειγμα ας υποθεσουμε οτι εγω γραφω babis πως θα δω αυτος υπαρχει?
θα το κανω απο την main...? cool
Εφ'οσον ο μπαμπης ειναι εγγεγραμμενο μελος, οταν θα κανεις σαρωση στα ονοματα και οντως θα υπαρχει θα εκτυπωνεις εσυ χειροκινητα οτι υπαρχει το μελος,δηλαδη sto if που θα ρωτας αν υπαρχει ο μπαμπης η οποιοδηποτε αλλο ονομα θελεις στα μελη και οντως υπαρχει θα κανεις ενα cout<<"Tο μελος που ζητησατε υπαρχει";
Logged

hmmy-ksirafaki
zisis00
Καταξιωμένος/Καταξιωμένη
***
Posts: 176


View Profile
Re: [C++] Εργασία Α (2011-12)
« Reply #89 on: November 19, 2011, 20:07:41 pm »

Quote from: Andre on November 19, 2011, 19:42:36 pm
Quote from: zisis00 on November 19, 2011, 15:19:04 pm
...Πάντως αν χρησιμοποιείσει κάποιος malloc να προτιμίσει να δηλώσει τα username, password, login name, ως char * και όχι ως string όπως εγώ γιατί θα έχει μλν θεματάκι.

Είναι τα λεγόμενα "κυριολεκτικά αλφαριθμητικά" που λέει στο βιβλίο του Schildt, σελ.147; Στις σημειώσεις πού υπάρχει αυτή η δήλωση;

ποιές σημειώσεις ? δεν ανέφερα κάτι τέτοιο ..
Logged
Pages: 1 ... 4 5 [6] 7 8 Go Up Print
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Scribbles2 | TinyPortal © Bloc | XHTML | CSS
Loading...