• Downloads
  • ! Read Me !
  • Μαθήματα
  • Φοιτητικά
  • Τεχνικά Θέματα
  • Συζητήσεις
  • Happy Hour!
  • About THMMY.gr
 V  < 
Search:  
Welcome, Guest. Please login or register.
June 17, 2025, 17:43:23 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, 17:43:23 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: 78
Guests: 124
Total: 202
Christop
theofr
alexandraskol
vaggelis.ntokas
k_tasio_
filon05
DimKaratzas
papatmaria
Sotirisbikos
vpoug
Elenit
prigians
Vaantoniadis
Captain
dkatsoul
Mardouk75
nikitask
eli_k
vajim
distillery
ariadnipm
evitzv
iliaskou
panapasc05
papakyrn
andripappa
skopsinos
sofaki
jimalexoud
dkonst
dmoral
akiousia
Χρήστος Κίτσος
mailon
palladas
BossiTsif
kesha
iJasonOP
kassamanwlhs
antontsiorvas
Ioannakoliou
george14
Evripidis
Juror8
Ioannis Apostolikas
apob
Δημητρης Αξιμιωτης
ThanosV
marwt
angiek
Kv
faidonchatz
glavdakis
stnanou
tzortzis
George_RT
geojohn
vasillikiiiiii
Kenedy
Gianbou
bit11
Saint_GR
afroditi
kchatziae
ggougous
johnderme5
vaiatyr
kvas
giannis g
serafeim
vasilis saitis
Belafonte
Εμφάνιση

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

Νέα!
Πρόγραμμα Χειμερινής Εξεταστικής 2024-2025
THMMY.gr > Forum > Μαθήματα Βασικού Κύκλου > 2ο Εξάμηνο > Αντικειμενοστραφής Προγραμματισμός (Moderators: chatzikys, tzortzis) > Απορίες στη C++
0 Members and 1 Guest are viewing this topic.
Pages: [1] 2 3 ... 27 Go Down Print
Author Topic: Απορίες στη C++  (Read 52240 times)
ampoulog
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 1378



View Profile
Απορίες στη C++
« on: February 17, 2008, 19:49:03 pm »

Υλοποιώ το παρακάτω πρόγραμμα στον compiler της ms , visual C++ εκδοση του 2005 .
Το πρόγραμμα αυτό είναι παράδειγμα στισ σημειώσεις του κυρίου Κορτέση σελίδα 76 ,και θα έπρεπε βάση των σημειώσεων να εκτυπώνει :
10
$$$$$$$$10
Παρόλα αυτά όταν κάνω compile μου εμφανίζει μία σείρα από λάθη , όπως :
Error   1   error C3646: 'setup' : unknown override specifier   c:\documents and settings\administrator\τα έγγραφά μου\visual studio 2005\projects\par32\par32\par32.cpp   14   
Error   2   error C2091: function returns function   c:\documents and settings\administrator\τα έγγραφά μου\visual studio 2005\projects\par32\par32\par32.cpp   15   
Error   3   error C4430: missing type specifier - int assumed. Note: C++ does not support default-int   c:\documents and settings\administrator\τα έγγραφά μου\visual studio 2005\projects\par32\par32\par32.cpp   15   
Error   4   error C2144: syntax error : 'int' should be preceded by ')'   c:\documents and settings\administrator\τα έγγραφά μου\visual studio 2005\projects\par32\par32\par32.cpp   16   
Error   5   error C2660: 'OMANIP' : function does not take 0 arguments   c:\documents and settings\administrator\τα έγγραφά μου\visual studio 2005\projects\par32\par32\par32.cpp   16   
Error   6   error C2059: syntax error : ')'   c:\documents and settings\administrator\τα έγγραφά μου\visual studio 2005\projects\par32\par32\par32.cpp   16   
Warning   7   warning C4508: 'OMANIP' : function should return a value; 'void' return type assumed   c:\documents and settings\administrator\τα έγγραφά μου\visual studio 2005\projects\par32\par32\par32.cpp   17   
Error   8   error C2660: 'setup' : function does not take 1 arguments   c:\documents and settings\administrator\τα έγγραφά μου\visual studio 2005\projects\par32\par32\par32.cpp   21   
τα οποία δεν μπορώ να διορθώσω .
Code:
#include<process.h>
#include<iostream>
#include<iomanip>
#include<conio.h>
using std::cin;
using std::cout;
using std::ostream;
using namespace std;
ostream &setup(ostream &s,int len)
{
s<<setw(len)<<setfill('$');
return s;
}
OMANIP (int)setup(int len)
{
return OMANIP (int)(setup,len);
}
void main()
{
cout<<10<<"\n";
cout<<setup(10)<<"  "<<10<<" "<<endl;
getch();
}
Το ίδιο πρόβλημα αντιμετωπίζω και στο παράδειγμα σελίδα 77 με κώδικα:
Code:
#include<process.h>
#include<iostream>
#include<iomanip>
#include<conio.h>
using std::cin;
using std::cout;
using namespace std;
IOMANIPdeclare(char);
ostream &setup(ostream &s,char c)
{
s<<setw(10)<<setfill(c);
return s;
}
OMANIP(char)setup(char c)
{
return OMANIP(char)(setup,c)
}
void main()
{
cout<<10<<" ";
cout<<setup('#')<<10<<endl;
}

που εμφανίζει τα εξής errors :
Error   1   error C4430: missing type specifier - int assumed. Note: C++ does not support default-int   c:\documents and settings\administrator\τα έγγραφά μου\visual studio 2005\projects\par33\par33\par33.cpp   8   
Error   2   error C3646: 'setup' : unknown override specifier   c:\documents and settings\administrator\τα έγγραφά μου\visual studio 2005\projects\par33\par33\par33.cpp   14   
Error   3   error C2091: function returns function   c:\documents and settings\administrator\τα έγγραφά μου\visual studio 2005\projects\par33\par33\par33.cpp   15   
Error   4   error C4430: missing type specifier - int assumed. Note: C++ does not support default-int   c:\documents and settings\administrator\τα έγγραφά μου\visual studio 2005\projects\par33\par33\par33.cpp   15   
Error   5   error C2144: syntax error : 'char' should be preceded by ')'   c:\documents and settings\administrator\τα έγγραφά μου\visual studio 2005\projects\par33\par33\par33.cpp   16   
Error   6   error C2660: 'OMANIP' : function does not take 0 arguments   c:\documents and settings\administrator\τα έγγραφά μου\visual studio 2005\projects\par33\par33\par33.cpp   16   
Error   7   error C2059: syntax error : ')'   c:\documents and settings\administrator\τα έγγραφά μου\visual studio 2005\projects\par33\par33\par33.cpp   16   
Warning   8   warning C4508: 'OMANIP' : function should return a value; 'void' return type assumed   c:\documents and settings\administrator\τα έγγραφά μου\visual studio 2005\projects\par33\par33\par33.cpp   17   
Error   9   error C2660: 'setup' : function does not take 1 arguments   c:\documents and settings\administrator\τα έγγραφά μου\visual studio 2005\projects\par33\par33\par33.cpp   21   

Και στο παράδειγμα σελίδα 83-84 στις σημειώσεις :
Code:
#include<process.h>
#include<iostream>
#include<fstream>
#include<stdlib.h>
#include<conio.h>
using std::cin;
using std::cout;
using namespace std;
void main()
{
int a[]={1,2,3,4,5};
int b[10];
int i;
ofstream ostrm("data.txt");
if(!ostrm){
cout<<"I cannot open the file \n\n";
getch();
exit(1);
}
ostrm.write((unsigned char*)a,sizeof(a));
ostrm.close();
ifstream istrm("data.txt");
if(!istrm){
cout<<"I cannot open the file \n\n";
getch();
exit(1);
}
istrm.read((unsigned char*)b,sizeof(b));
for(i=0;i<5;i++)
{
cout<<b[i]<<"\n";
}
cout<<istrm.gcount()<<"\n\n";
istrm.close();
getch();
}
Μου εμφανίζει τα παρακάτω σφάλματα :
Error   2   error C2664: 'std::basic_ostream<_Elem,_Traits>::write' : cannot convert parameter 1 from 'unsigned char *' to 'const char *'   c:\documents and settings\administrator\τα έγγραφά μου\visual studio 2005\projects\par37\par37\par37_read_write.cpp   20   
Error   3   error C2664: 'std::basic_istream<_Elem,_Traits>::read' : cannot convert parameter 1 from 'unsigned char *' to 'char *'   c:\documents and settings\administrator\τα έγγραφά μου\visual studio 2005\projects\par37\par37\par37_read_write.cpp   28   
Ακόμη στο παράδειγμα σελ 100-101
Code:
#include<process.h>
#include<iostream>
#include<conio.h>
using std::cout;
using std::cin;
using namespace std;
class A{
int i,j,k,m;
public:
A(int n,int m);
void sum(void);
void prod(void);
};
A::A(int n, int m)
{
i=n;
j=m;
}
void A::sum(void)
{
k=i+j;
}
void A::prod(void)
{
m=i*j;
}
void main()
{
A a(3,4),*p;
int A::*pk;
int A::*pm;
void(A::*psum)(void);
void(A::*pprod)(void);
p=&a;
pk=(&A::k);
pm=&A::m;
psum=&A::sum;
pprod=&A::prod;
(a.*psum)();
(p->*pprod)();
cout<<a.*pk<<" "<<p->*pm<<"\n";
getch();
}
Παρουσιάζει τα εξής σφάλματα :
Error   1   error C2248: 'A::k' : cannot access private member declared in class 'A'   c:\documents and settings\administrator\τα έγγραφά μου\visual studio 2005\projects\par43\par43\par43.cpp   35   
Error   2   error C2248: 'A::m' : cannot access private member declared in class 'A'   c:\documents and settings\administrator\τα έγγραφά μου\visual studio 2005\projects\par43\par43\par43.cpp   36   

Μήπως μπορεί κάποιος να βοηθήσει ??
« Last Edit: October 31, 2013, 17:33:18 pm by Napoleon » Logged

Bλάκας δεν είναι αυτός που δεν έχει νοημοσύνη , αλλά αυτός που πιστεύει

σε ό,τι του δείξουν ως αληθινό και σε ό,τι του εξυψώνει την αυταρέσκεια,

χωρίς να κρίνει και χωρίς να σκέφτεται.
Verminoz
Veteran
Καταστραμμένος
******
Gender: Male
Posts: 8236


I smoke my friends down to the filter


View Profile WWW
Re: Απορίες στη C++
« Reply #1 on: February 17, 2008, 19:56:58 pm »

Με memory leak μοιάζει αλλά εκ πρώτης όψεως δεν μπορώ να καταλάβω που οφείλεται. Debug δοκίμασες? Πάν'το step-by-step να δεις σε ποια γραμμή κώδικα σου πετάει το πρόβλημα.

Άσχετα από αυτό θα σύστηνα να αλλάξεις compiler αλλά τεσπα.
Logged



Englab - Open source scientific/engineering platform
Rebetologion - Contemporary/Experimental


Κακούργα ύπαρξις!
ampoulog
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 1378



View Profile
Re: Απορίες στη C++
« Reply #2 on: February 17, 2008, 19:59:40 pm »

Όταν λες memoru leak τι εννοείς ??

Logged

Bλάκας δεν είναι αυτός που δεν έχει νοημοσύνη , αλλά αυτός που πιστεύει

σε ό,τι του δείξουν ως αληθινό και σε ό,τι του εξυψώνει την αυταρέσκεια,

χωρίς να κρίνει και χωρίς να σκέφτεται.
ampoulog
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 1378



View Profile
Re: Απορίες στη C++
« Reply #3 on: February 17, 2008, 20:09:17 pm »

Quote from: Kenny on February 17, 2008, 19:56:58 pm
Με memory leak μοιάζει αλλά εκ πρώτης όψεως δεν μπορώ να καταλάβω που οφείλεται. Debug δοκίμασες? Πάν'το step-by-step να δεις σε ποια γραμμή κώδικα σου πετάει το πρόβλημα.

Άσχετα από αυτό θα σύστηνα να αλλάξεις compiler αλλά τεσπα.

Βασικά τα δοκίμασα και σε Borland αλλά και εκεί τα ίδια !!
« Last Edit: February 18, 2008, 12:40:47 pm by ampoulog » Logged

Bλάκας δεν είναι αυτός που δεν έχει νοημοσύνη , αλλά αυτός που πιστεύει

σε ό,τι του δείξουν ως αληθινό και σε ό,τι του εξυψώνει την αυταρέσκεια,

χωρίς να κρίνει και χωρίς να σκέφτεται.
ampoulog
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 1378



View Profile
Re: Απορίες στη C++
« Reply #4 on: February 18, 2008, 12:45:20 pm »

Κανένας ?????
Logged

Bλάκας δεν είναι αυτός που δεν έχει νοημοσύνη , αλλά αυτός που πιστεύει

σε ό,τι του δείξουν ως αληθινό και σε ό,τι του εξυψώνει την αυταρέσκεια,

χωρίς να κρίνει και χωρίς να σκέφτεται.
(Stalin)^2
Guest
Re: Απορίες στη C++
« Reply #5 on: February 20, 2008, 11:47:42 am »

Λοιπόν έχω την εξής απορία: Έστω οτι έχουμε μια class A και μια class B public παραγώμενη  από την Α. Η Α και η Β έχουν μια public συνάρτηση με το ίδιο όνομα πχ void calc(); η οποία κάνει διαφορετικά πραγματα για την μια και την άλλη.

Τώρα αν εγώ θέλω να τρέξω για ένα αντικείμενο class B την calc της Α και οχι της Β με ποιά εντολή θα μπορούσα να το κάνω?

Σκέφτηκα με pointer σε Β τον οποίο έχω κάνει cast αλλά δεν είμαι σίγουρος...
Όποιος ξέρει ας δώσει λίγο τα φώτα του....
« Last Edit: September 03, 2008, 19:03:51 pm by λήθη » Logged
Wade
Veteran
Καταστραμμένος
******
Gender: Male
Posts: 5795



View Profile WWW
Re: Απορίες στη C++
« Reply #6 on: February 20, 2008, 11:57:36 am »

Μπορείς να χρησιμοποιήσεις τον τελεστή εμβέλειας.  Αν b το αντικείμενο της κλάσης B που λες, καλείς την calc() της A ως εξής: b.A::calc();
Logged

jeen
Νεούλης/Νεούλα
*
Gender: Male
Posts: 26



View Profile
Re: Απορίες στη C++
« Reply #7 on: September 03, 2008, 18:29:35 pm »

Εγώ έχω μία άλλη απορία σχετικά με την κληρονομικότητα...Έστω class A βασική, class B κληρονομεί την Α και τέλος class C όπου και αυτή κληρονομεί την Α...Έστω τώρα ότι όλες οι κλάσεις έχουν συναρτήσεις δόμησης και φτίαχνω δύο αντικείμενα τύπου B, C...Πως θα αποφύγω να τρέξει δύο φορές η συνάρτηση δόμησης της Α Huh
Logged

Η βία δεν είναι λύση..Η Λία όμως είναι Βίσση..!
Verminoz
Veteran
Καταστραμμένος
******
Gender: Male
Posts: 8236


I smoke my friends down to the filter


View Profile WWW
Re: Απορίες στη C++
« Reply #8 on: September 03, 2008, 20:21:37 pm »

Τα αντικείμενα B και C είναι διαφορετικά, δεν μπορείς και δεν υπάρχει λόγος να αποφύγεις να κληθεί δύο φορές η συνάρτηση δόμησης του Α γιατί πολύ απλά κάθε μία από τις δύο εκτελέσεις της θα είναι για διαφορετικό αντικείμενο (B και C), δηλάδη δύο διαφορετικές μεταβλητές που αποθηκεύονται σε διαφορετικά σημεία στη μνήμη.

Το ότι κληρονομούν και τα δύο από την Α δε σημαίνει τίποτα. Κάθε συνάρτηση δόμησης θα αφορά διαφορετικό στιγμυότυπο της μεταβλητής Α που περιέχεται στο στιγμυότυπο της παραγόμενης κλάσης (B και C).

Ελπίζω να το εξήγησα επαρκώς! Smiley
Logged



Englab - Open source scientific/engineering platform
Rebetologion - Contemporary/Experimental


Κακούργα ύπαρξις!
jeen
Νεούλης/Νεούλα
*
Gender: Male
Posts: 26



View Profile
Re: Απορίες στη C++
« Reply #9 on: September 03, 2008, 21:03:12 pm »

ΟΚ το κατάλαβα...Απλά να σου φέρω σαν παράδειγμα το θέμα 2 του 2000...Ανάλογα με το τι επιστρέφει η calck() κρατάμε περισσότερα ή λιγότερα στοιχεία από τον πρώτο πίνακα, έστω α γιατί δε δίνει κάποιο όνομα...Εμείς δε θέλουμε να είναι ο ίδιος πίνακας και για το αντικείμενο τύπου C και για το Β; Δηλαδή θα δώσουμε 2 φορές τον ίδιο πίνακα...
Logged

Η βία δεν είναι λύση..Η Λία όμως είναι Βίσση..!
Verminoz
Veteran
Καταστραμμένος
******
Gender: Male
Posts: 8236


I smoke my friends down to the filter


View Profile WWW
Re: Απορίες στη C++
« Reply #10 on: September 03, 2008, 21:20:53 pm »

Κάθε κλάση έχει έναν δικό της πίνακα με 10 στοιχεία, η Α τον α, η Β τον b,  η C τον c. Προφανώς κάθε στιγμυότυπο της B και της C περιέχει εκτός από τον δικό της και έναν α κληρονομημένο από την Α. Προφανώς αφού η κληρονομημένη συνάρτηση run καλείται πρέπει να κληθεί ξέχωρα για ένα αντικείμενα Β και για ένα αντικείμενο C τότε θα σου ζητηθεί δύο φορές είσοδος, γιατί έτσι είναι υλοποιημένη η run στην Α.
Αφού το ζητάει έτσι δεν είναι ανάγκη να μπουν τα ίδια δεδομένα και στις δύο. Εξάλλου η calck() κάνει διαφορετικά πράγματα για την Β και για την C.
Logged



Englab - Open source scientific/engineering platform
Rebetologion - Contemporary/Experimental


Κακούργα ύπαρξις!
vasso
Καταστραμμένος
********
Gender: Female
Posts: 6672


Overambitious doer


View Profile WWW
Re: Απορίες στη C++
« Reply #11 on: October 09, 2008, 01:02:09 am »

Παιδιά μια άσχετη απορία, αλλά ας μην ανοίξω άλλο τόπικ.

Κάποιος που έδωσε και πέρασε C++ το Σεπτέμβρη μπορεί να μου πει αν η βαθμολογία του περάστηκε στο ITC?
Logged

Είναι τα βλέφαρά μου
διάφανες αυλαίες.
Όταν τα ανοίγω βλέπω
μπρος μου ό,τι κι αν τύχει.
Όταν τα κλείνω βλέπω
μπρος μου ό,τι ποθώ.
fkoufis
Ανερχόμενος/Ανερχόμενη
**
Gender: Male
Posts: 85


Γίνε και εσύ koufis!


View Profile
Re: Απορίες στη C++
« Reply #12 on: October 09, 2008, 10:35:15 am »

Τώρα που τσέκαρα το itc δεν εχει περαστεί ακόμα η βαθμολογία της c++ σε εμένα. Ελπίζω ότι κάποια στιγμή θα γίνει και αυτό.
Logged

"Engineering is the art of modelling materials we do not wholly understand, into shapes we cannot precisely analyze so as to withstand forces we cannot properly assess, in such a way that the public has no reason to suspect the extent of our ignorance"
crystal
Veteran
Αbsolute ΤΗΜΜΥ.gr
******
Gender: Female
Posts: 2503



View Profile
Re: Απορίες στη C++
« Reply #13 on: November 15, 2008, 01:23:48 am »

H συναρτηση .lenght() σε ποια βιβλιοθηκη υπαρχει?
Logged
radio
Καταξιωμένος/Καταξιωμένη
***
Posts: 169


View Profile
Re: Απορίες στη C++
« Reply #14 on: November 15, 2008, 01:51:31 am »

include <string>
Logged
Pages: [1] 2 3 ... 27 Go Up Print
Jump to:  

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