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

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
Πρακτική Άσκηση ΤΗΜΜΥ 201...
by asemas
[Today at 16:20:27]

Τι ακούτε αυτήν τη στιγμή...
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 okan
[Today at 02:33:21]

[Οργάνωση Υπολογιστών] Γε...
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]

Αρχείο Ανακοινώσεων [Arch...
by Nikos_313
[June 14, 2025, 09:58:14 am]
Στατιστικά
Members
Total Members: 9961
Latest: Poli
Stats
Total Posts: 1426690
Total Topics: 31710
Online Today: 218
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 94
Guests: 101
Total: 195
Lemonia
sisi
et7gr
freedom
nikolihss
Louisa
Fotis Roukoutakis
johnnypap
Vangelan
marilita
vaggelis.ntokas
Vasilikikr
Yamal
AngelosAthanasiou
aimgk
athena_apo
ekyriakos
tpt
dkoukn
nikpapoutsi
geoarg
kostaspap
iJasonOP
meliou
tsakalokagkouras
cpapast
chrysa.tsilika
ELEF
Athinaaz
Konstantina Karamani
antontsiorvas
miltan8
jimalexoud
vasiliki_m
george14
κοτζακ
George_RT
cheefler
arswagdapro
kriton
fpapat
Captain
maik
stefpapa21
vag3
vagk
estoimea
smoul
vasilis saitis
Tasaras
nasos
IoannisMich
tasos_ntv
Dimos Bachlas
dimitriskon
rigas_s
nikitask
boulionis
Δημητρης Αξιμιωτης
lefterish
G.V.
θσερναμε
Bigie_Cheese
genethalsss74
Ulmo
VagT
swkraths
kapoutsi
Local Rider
kostas.de
glavdakis
giannisd
sassi
Napoleontas
Νικη
mprova
geo66
chaniotism
giorgosss03
Solon
maranageo
DKarakatsanis
Κaraflodaimonas
stefanos123
Gianbou
difis
Evripidis
alexandra_
Εμφάνιση

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

Νέα!
Για οποιοδήποτε πρόβλημα με register/login, στείλτε email στο contact@thmmy.gr.
THMMY.gr > Forum > Μαθήματα Βασικού Κύκλου > 2ο Εξάμηνο > Αντικειμενοστραφής Προγραμματισμός (Moderators: chatzikys, tzortzis) > Απορίες στη C++
0 Members and 1 Guest are viewing this topic.
Pages: 1 ... 3 4 [5] 6 7 ... 27 Go Down Print
Author Topic: Απορίες στη C++  (Read 52298 times)
Anyparktos
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 1116


(╯°□°)╯︵ ┻━┻


View Profile
Re: Απορίες στη C++
« Reply #60 on: February 07, 2009, 21:29:59 pm »

H main δε πηγε πουθενα,γιατι άμα βγάζει error απο τώρα για ποιόν λόγο να την κάνω την Main???
Logged


With great power come great circuit breakers.And great cross sections.And great relays.
Emfanever
Καταστραμμένος
********
Gender: Male
Posts: 5284


Πολίτης


View Profile
Re: Απορίες στη C++
« Reply #61 on: February 07, 2009, 21:31:14 pm »

Quote from: Anyparktos on February 07, 2009, 21:29:59 pm
H main δε πηγε πουθενα,γιατι άμα βγάζει error απο τώρα για ποιόν λόγο να την κάνω την Main???
Cheesy

Αν δε τελειώσεις τη main πάντα βγάζει errors. Είναι πιο εύκολα να εντοπίσεις τα λάθη όταν είναι ολοκληρωμένο το πρόγραμμα
Logged
Anyparktos
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 1116


(╯°□°)╯︵ ┻━┻


View Profile
Re: Απορίες στη C++
« Reply #62 on: February 07, 2009, 21:39:01 pm »

Quote from: Emfanever on February 07, 2009, 21:31:14 pm
Quote from: Anyparktos on February 07, 2009, 21:29:59 pm
H main δε πηγε πουθενα,γιατι άμα βγάζει error απο τώρα για ποιόν λόγο να την κάνω την Main???
Cheesy

Αν δε τελειώσεις τη main πάντα βγάζει errors. Είναι πιο εύκολα να εντοπίσεις τα λάθη όταν είναι ολοκληρωμένο το πρόγραμμα

Code:
#include <iostream.h>
#include <process.h>

class A
{
 protected:

 int n;
 int *a;

 public:

 A();
 void print(int k);
};

A::A()
{
 int i;
 cout<<"\nn= : ";
 cin>>n;
 a=new int[n];
 for(i=0;i<n;i++)
 {
  cout<<"\n"<<i+1<<"o stoixeio tou pinaka a: ";
  cin>>a[i];
 }
}

void A::print(int k)
{
 int i;
 for(i=0;i<k;i++)
 cout<<"\n"<<i+1<<"o stoixeio tou a: "<<a[i];
}

class B:public A
{
 protected:

 int *b;

 public:

 B(int k);

};

B::B(int k)
{
 int i;
 if(k<n)
 {
  b=new int[k];
  for(i=0;i<k;i++)
  {
   cout<<"\n"<<i+1<<"o stoixeio tou b: ";
   cin>>b[i];
  }
 }
 else
 {
  b=new int[n];
  for(i=0;i<n;i++)
  {
   cout<<"\n"<<i+1<<"o stoixeio tou b: ";
   cin>>b[i];
  }
 }
}



class C:public A
{
 protected:

 int *c;

 public:

 C(int k);

};

C::C(int k)
{
 int i;
 if(k<n)
 {
  c=new int[k];
  for(i=0;i<k;i++)
  {
   cout<<"\n"<<i+1<<"o stoixeio tou c: ";
   cin>>c[i];
  }
 }
 else
 {
  c=new int[n];
  for(i=0;i<n;i++)
  {
   cout<<"\n"<<i+1<<"o stoixeio tou c: ";
   cin>>c[i];
  }
 }
}

class D:public B,public C
{
 public:

 D(int k):B(k),C(k){};
 void operator [](int k);

};

void D::operator[](int k)
{
 int i;
 if(n<k)
 {
  for(i=0;i<n;i++)
  a[i]=b[i]+c[i];
 }
 else
 {
  for(i=0;i<k;i++)
  a[i]=b[i]+c[i];
 }
}
 
void main()
{
 int k;
 cout<<"Dwse k: ";
 cin>>k;
 D d(k);
 d[k];
 d.print();
}

I would very much like to see a difference,but i don't.  Sad
Logged


With great power come great circuit breakers.And great cross sections.And great relays.
mitsos_dlx
Θαμώνας
****
Gender: Male
Posts: 366



View Profile
Re: Απορίες στη C++
« Reply #63 on: February 07, 2009, 23:23:05 pm »

Από ότι βλέπω στην κλάση Α έχεις τον pointer α και τον integer n.
Αυτοί κληρονομούνται στις B και C κλάσεις.
Όταν τέλος φτιάχνεις την D κλάση καταλήγεις να έχεις 2 n και 2 pointers a . Ένα από την Β και ένα από την C.
Δεν ξέρω τώρα τι θέλεις να κάνει το πρόγραμμα αλλά εκει βρίσκεται το μπέρδεμα. Δεν ξέρουμε σε ποιο n αναφέρεσαι...

Πιθανώς να θέλεις η κλάση D σου να έχει 1 μόνο φορά τα στοιχεία της Α. Τότε πρέπει να ορίσεις τις Β και C ως εξής:

class Β: virtual public A
class C: virtual public A

« Last Edit: February 07, 2009, 23:26:18 pm by mitsos_dlx » Logged
Anyparktos
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 1116


(╯°□°)╯︵ ┻━┻


View Profile
Re: Απορίες στη C++
« Reply #64 on: February 07, 2009, 23:43:46 pm »

Quote from: mitsos_dlx on February 07, 2009, 23:23:05 pm
Από ότι βλέπω στην κλάση Α έχεις τον pointer α και τον integer n.
Αυτοί κληρονομούνται στις B και C κλάσεις.
Όταν τέλος φτιάχνεις την D κλάση καταλήγεις να έχεις 2 n και 2 pointers a . Ένα από την Β και ένα από την C.
Δεν ξέρω τώρα τι θέλεις να κάνει το πρόγραμμα αλλά εκει βρίσκεται το μπέρδεμα. Δεν ξέρουμε σε ποιο n αναφέρεσαι...

Πιθανώς να θέλεις η κλάση D σου να έχει 1 μόνο φορά τα στοιχεία της Α. Τότε πρέπει να ορίσεις τις Β και C ως εξής:

class Β: virtual public A
class C: virtual public A


Oπως είπα και σε προηγούμενο ποστ αυτό είναι θέμα αυτής της χρονιας: http://www.thmmy.gr/smf/index.php?action=tpmod;dl=item398

Χρειάζεται κάποιες περισσότερες τροποποιήσεις πέρα από το να κάνω την προσπέλαση των B,C virtual?
Πάντως όταν κάνω την προσπέλαση virtual δε βγάζει error!Ευχαριστώ!  Smiley
Logged


With great power come great circuit breakers.And great cross sections.And great relays.
crystal
Veteran
Αbsolute ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 2503



View Profile
Re: Απορίες στη C++
« Reply #65 on: February 08, 2009, 11:41:41 am »

Στην υπερφόρτωση του new αυτό είναι οκ, αντί για την malloc?

void *operator new(size_t size){
    void *p;
    p= new size_t;
}

Εχώ προβλημα στο πώς γίνεται με την delete χωρίς να χρησιμοποίησω την free..  Embarrassed
« Last Edit: February 08, 2009, 12:05:50 pm by crystal » Logged
Sonic
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 148


View Profile
Re: Απορίες στη C++
« Reply #66 on: February 08, 2009, 12:55:43 pm »

Quote from: Anyparktos on February 07, 2009, 23:43:46 pm
Quote from: mitsos_dlx on February 07, 2009, 23:23:05 pm
Από ότι βλέπω στην κλάση Α έχεις τον pointer α και τον integer n.
Αυτοί κληρονομούνται στις B και C κλάσεις.
Όταν τέλος φτιάχνεις την D κλάση καταλήγεις να έχεις 2 n και 2 pointers a . Ένα από την Β και ένα από την C.
Δεν ξέρω τώρα τι θέλεις να κάνει το πρόγραμμα αλλά εκει βρίσκεται το μπέρδεμα. Δεν ξέρουμε σε ποιο n αναφέρεσαι...

Πιθανώς να θέλεις η κλάση D σου να έχει 1 μόνο φορά τα στοιχεία της Α. Τότε πρέπει να ορίσεις τις Β και C ως εξής:

class Β: virtual public A
class C: virtual public A


Oπως είπα και σε προηγούμενο ποστ αυτό είναι θέμα αυτής της χρονιας: http://www.thmmy.gr/smf/index.php?action=tpmod;dl=item398


δε νομιζω πως ειναι το ιδιο πραγμα.στο παραδειγμα σου δεν ειναι σαφως ορισμενα τα n,a και γι αυτο χρειαζεται η παραπανω τροποποιηση.ωστοσο στο θεμα του 2003 τα k,m δηλωνονται private σε ολες τις κλασεις και δεν κληρονομουνται.ετσι καθε κλαση εχει τα δικα της k,m.
« Last Edit: February 08, 2009, 12:57:58 pm by Sonic » Logged
pitsa
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 1968


who cares....


View Profile
Re: Απορίες στη C++
« Reply #67 on: February 08, 2009, 21:33:49 pm »

εγώ έχω μια άλλη απορία για την αρχή αρχή...

όταν θέλω να φτιάξω πίνακα αντικειμένων..πως τον ορίζω??
αν κάνω:

A pinakas[n];
for i=0;i<n;i++ {
    pinakas[ i ]=A(parametroi);
}

είναι σωστό?ή πρέπει να κάνω:


A pinakas[n];
for i=0;i<n;i++ {
    pinakas[ i ](parametroi);
}

??
Logged

everything will be ok in the end. if it's not ok,it's not the end..
AgentCain
Αbsolute ΤΗΜΜΥ.gr
*******
Gender: Male
Posts: 3587


Σοφράνο βρίσε, σταβέντο φτύσε!


View Profile
Re: Απορίες στη C++
« Reply #68 on: February 08, 2009, 21:46:34 pm »

Το 1ο που γράφεις είναι σχεδόν σωστό εφόσον η κλάση Α έχει 2 ΣΑΣ μια με ορίσματα και μια χωρίς. Επιπλέον πρέπει να ορίσεις ένα αντικείμενο με τη new στο οποίο θα βάζεις τις παραμέτρους σου, μετα να το περνάς στον πίνακα και τέλος να το σβήνεις.
Το 2ο δεν είναι σωστό διότι από τη στιγμή που γράφεις Α pinakas[n] έχουν τρέξει οι ΣΑΣ για τα αντικείμενα, οπότε δεν μπορείς να γράψεις pinakas[ i](parametroi) αλλά μπορείς να γράψεις pinakas[ i].set_param( parametroi)
« Last Edit: February 08, 2009, 21:51:19 pm by AgentCain » Logged


Ανάμεσα σ'αυτό που σκέφτομαι, σ'αυτό που θέλω να σας πω, σ'αυτό που πιστεύω ότι σας λέω, σ'αυτό που σας λέω, σ'αυτό που θέλετε να ακούσετε, σ'αυτό που ακούτε, σ'αυτό που πιστεύετε ότι καταλαβαίνετε, σ'αυτό που θέλετε να καταλάβετε και σ'αυτό που καταλαβαίνετε υπάρχουν τουλάχιστον 9 πιθανότητες να μην συννενοηθούμε.

gate4
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Posts: 1996


View Profile
Re: Απορίες στη C++
« Reply #69 on: February 08, 2009, 22:02:47 pm »

eite exei orismata eite den exei autp de kalyptei tis periptoseis?
a pinakas[ n ];
for(i=0;i<n;i++) {
 a b; // h a b(.....)
pinakas[ i ]=b;
}

sto prwto tou 2003 ta antikeimena c kai b ston operator [ ] pou orizontai?
Logged

Διαμαντοπουλου: Οι καταλήψεις είναι μια μορφή πάλης και θα έλεγα ότι είναι η ανώτατη μορφή πάλης. Στην Ελλάδα ξεκίνησαν και αυτή τη φορά με την ανώτατη μορφή πάλης που είναι οι καταλήψεις, όμως όταν κάποιος επιλέγει να αγωνιστεί με τέτοιες μορφές έχει και ένα κόστος.



我學會并且講仅中文,因為沒人明白我,當我講希臘語時
Emfanever
Καταστραμμένος
********
Gender: Male
Posts: 5284


Πολίτης


View Profile
Re: Απορίες στη C++
« Reply #70 on: February 08, 2009, 22:13:00 pm »

Quote from: gate4 on February 08, 2009, 22:02:47 pm
eite exei orismata eite den exei autp de kalyptei tis periptoseis?
a pinakas[ n ];
for(i=0;i<n;i++) {
 a b; // h a b(.....)
pinakas[ i ]=b;
}


Ναι έτσι γίνεται
Logged
AgentCain
Αbsolute ΤΗΜΜΥ.gr
*******
Gender: Male
Posts: 3587


Σοφράνο βρίσε, σταβέντο φτύσε!


View Profile
Re: Απορίες στη C++
« Reply #71 on: February 08, 2009, 22:16:35 pm »


το σωστό θα ήταν
a pinakas[ n];
a *p;
for( i=0;i<n;i++){
p=new a(parametroi);
pinakas[ i]=*p;
delete(p);
}
πρέπει όμως να έχεις και στη κλάση σου 2 ΣΑΣ μια με ορίσματα και μία χωρίς
σύμφωνα με τον Κορτέση πάντα ε...
Logged


Ανάμεσα σ'αυτό που σκέφτομαι, σ'αυτό που θέλω να σας πω, σ'αυτό που πιστεύω ότι σας λέω, σ'αυτό που σας λέω, σ'αυτό που θέλετε να ακούσετε, σ'αυτό που ακούτε, σ'αυτό που πιστεύετε ότι καταλαβαίνετε, σ'αυτό που θέλετε να καταλάβετε και σ'αυτό που καταλαβαίνετε υπάρχουν τουλάχιστον 9 πιθανότητες να μην συννενοηθούμε.

Emfanever
Καταστραμμένος
********
Gender: Male
Posts: 5284


Πολίτης


View Profile
Re: Απορίες στη C++
« Reply #72 on: February 08, 2009, 22:23:31 pm »

Quote from: AgentCain on February 08, 2009, 22:16:35 pm

το σωστό θα ήταν
a pinakas[ n];
a *p;
for( i=0;i<n;i++){
p=new a(parametroi);
pinakas[ i]=*p;
delete(p);
}
πρέπει όμως να έχεις και στη κλάση σου 2 ΣΑΣ μια με ορίσματα και μία χωρίς
σύμφωνα με τον Κορτέση πάντα ε...

βασικά δεν έχει νόημα να κάνεις new για ένα αντικείμενο.

όταν γράφεις σκέτο a temp;  κάθε φορά το temp καταστρέφεται και το αντικαθιστά το καινούριο και όταν βγεις από τη for πάλι καταστρέφεται, άρα δε χρειάζεται new και delete.
Logged
Emfanever
Καταστραμμένος
********
Gender: Male
Posts: 5284


Πολίτης


View Profile
Re: Απορίες στη C++
« Reply #73 on: February 08, 2009, 22:32:43 pm »

επίσης όταν γράφεις A pinakas[n];

και η αρχικών συνθηκών της A θέλει ορίσματα βγάζει λάθος πάλι

με malloc πρέπει να γίνει νομίζω  p=(A*)malloc(n*sizeof(A))

και μετά με τη for αρχικοποιείς....
Logged
AgentCain
Αbsolute ΤΗΜΜΥ.gr
*******
Gender: Male
Posts: 3587


Σοφράνο βρίσε, σταβέντο φτύσε!


View Profile
Re: Απορίες στη C++
« Reply #74 on: February 08, 2009, 22:35:54 pm »

Quote from: Emfanever on February 08, 2009, 22:23:31 pm
βασικά δεν έχει νόημα να κάνεις new για ένα αντικείμενο.

όταν γράφεις σκέτο a temp;  κάθε φορά το temp καταστρέφεται και το αντικαθιστά το καινούριο και όταν βγεις από τη for πάλι καταστρέφεται, άρα δε χρειάζεται new και delete.

Συμφωνώ, αλλά δε διαβάζεις τα ψιλά γράμματα

"σύμφωνα με τον Κορτέση πάντα ε..."

no offence αλλά έχει προηγηθεί ολόκληρη συζήτηση για αυτό το θέμα για να καταλήξουμε στο πιο πάνω το οποίο και πρότεινε ο κ. Κορτέσης

Quote
επίσης όταν γράφεις A pinakas[n];

και η αρχικών συνθηκών της A θέλει ορίσματα βγάζει λάθος πάλι
Γιαυτό το λόγο θέλει 2 ΣΑΣ, μια με και μια ... διαίτης Grin
Logged


Ανάμεσα σ'αυτό που σκέφτομαι, σ'αυτό που θέλω να σας πω, σ'αυτό που πιστεύω ότι σας λέω, σ'αυτό που σας λέω, σ'αυτό που θέλετε να ακούσετε, σ'αυτό που ακούτε, σ'αυτό που πιστεύετε ότι καταλαβαίνετε, σ'αυτό που θέλετε να καταλάβετε και σ'αυτό που καταλαβαίνετε υπάρχουν τουλάχιστον 9 πιθανότητες να μην συννενοηθούμε.

Pages: 1 ... 3 4 [5] 6 7 ... 27 Go Up Print
Jump to:  

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