FW: SOLVED:C++ Questions
Marios
marios_hellas_23 at yahoo.gr
Thu Nov 27 17:48:43 EET 2003
Δοκίμασα και αυτό που είπες, και δούλεψε. Δεν ξέρω ποια είναι η
καλύτερη-σωστότερη λύση αλλά και οι δυο κάνουν την δουλεία μου. Θα
χρησιμοποιήσω τον τρόπο void func(const float *const *const * p); για να
αποφύγω το type casting όταν περνάω τον πίνακα σε ένα function, (δε μου
αρέσει ΟΠΤΙΚΑ!!!)
Εσείς τι λέτε?
-----Original Message-----
From: linux-greek-users-bounces at lists.hellug.gr
[mailto:linux-greek-users-bounces at lists.hellug.gr] On Behalf Of Vasilis
Vasaitis
Sent: Wednesday, November 26, 2003 2:27 AM
To: Marios
Cc: linux-greek-users at lists.hellug.gr; 'V13'
Subject: Re: SOLVED:C++ Questions
On Wed, Nov 26, 2003 at 12:19:43AM +0200, Marios wrote:
>
> Ναι, έχεις δίκιο. Αυτό ήταν.
> Ευχαριστώ πολύ
Ερμ, όχι ακριβώς, δες παρακάτω.
> Υ.Γ. Για κάποιο τρόπο για την ακρίβεια των float ?
> Όχι όμως με setpressiccion. Νομίζω ότι αυτό απλά τυπώνει στην οθόνη την
> ακρίβεια.
Αυτό που ρώτησες περί ακρίβειας απλά δε στέκει. Οι float δεν έχουν
συγκεκριμένο αριθμό δεκαδικών ψηφίων, αλλά ψηφίων γενικότερα (με βάση
το δύο πάντα). Δεν είναι τυχαίο ότι λέγονται αριθμοί *κινητής*
υποδιαστολής. Πάντως για την εκτύπωση του αριθμού, η setprecision()
είναι αυτό που θέλεις.
> -----Original Message-----
> From: linux-greek-users-bounces at lists.hellug.gr
> [mailto:linux-greek-users-bounces at lists.hellug.gr] On Behalf Of V13
> Sent: Tuesday, November 25, 2003 11:23 PM
> To: linux-greek-users at lists.hellug.gr
> Cc: Marios
> Subject: Re: C++ Questions
>
> On Tuesday 25 November 2003 21:29, Marios wrote:
> > Θέλω αυτόν τον πίνακα να τον περάσω σε ένα function αλλά ως const,
δηλαδή
> > να μην μπορεί να αλλάξει μέσα στο function. Όμως όταν κάνω αυτό
> >
> > func(const float ***array3);
> > Ο compiler λέει ότι δεν μπορεί να μετατρέψει ένα ***float σε const
float*
> > Πώς γίνεται?
>
> Desto me 2 asterakia..
>
> exeis:
>
> void func(const float **p);
>
> int main()
> {
> float **a;
>
> func(a);
> }
>
> H func perimenei na parei enan pointer se antikeimena toy typoy
> 'const float *' eno esy stelneis enan pointer se antikeimena toy typoy
> 'float *' xoris na kaneis kapoio casting...
>
> Den einai to idio me to na alazeis to 'float *' se 'const float *'
>
> Gia ti periptosi soy dokimase na kaneis compile to:
>
> void func(const float ***a) {a[0][0][0]=0;}
> int main()
> {
> float ***a;
>
> func((const float ***)a);
> }
>
> to opoio einai ayto poy theleis...
Όχι, δεν είναι αυτό που θέλει. Άμα σου γκαρίζει ο compiler για κάτι
που κάνεις στραβά, το type casting είναι μεν μια λύση που θεραπεύει τα
συμπτώματα, αλλά όχι και την αιτία πίσω από το πρόβλημα. Αν και εδώ ο
φίλος μας δε μας είπε τι ακριβώς θέλει να είναι const και τι όχι,
υποψιάζομαι ότι θέλει κάτι τέτοιο:
void func(const float *const *const * p);
--
Vasilis Vasaitis
vvas at hal.csd.auth.gr
+306976604701
--
linux-greek-users mailing list -- http://lists.hellug.gr
More information about the Linux-greek-users
mailing list