SOLVED:C++ Questions

Vasilis Vasaitis vvas at hal.csd.auth.gr
Wed Nov 26 02:27:23 EET 2003


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





More information about the Linux-greek-users mailing list