error: invalid static_cast

11 views
Skip to first unread message

Demosthenes Koptsis

unread,
Dec 30, 2011, 5:30:03 AM12/30/11
to TheHackerspace
Καλημέρα,

είμαι σε ένα παράδειγμα του βιβλίου που λέει:

// Fig. 15.3: Fig15_03.cpp
// Printing the address stored in a char * variable.
#include <iostream>
using namespace std;

int main()
{
const char *const word = "again";

// display value of char *, then display value of char *
// static_cast to void *
cout << "Value of word is: " << word << endl
<< "Value of static_cast< void * >( word ) is: "
<< static_cast< void * >( word ) << endl;

} // end main


Κανονικά πρέπει να βγάλει:

Value of word is: again
Value of static_cast< void * >( word ) is: 00428300

αλλά αντί αυτού βγάζει λάθος ως εξής:

main.cpp|14|error: invalid static_cast from type ‘const char* const’ to
type ‘void*’|

Γιατί;

Ευχαριστώ.

Demosthenes Koptsis

unread,
Dec 30, 2011, 5:44:33 AM12/30/11
to TheHackerspace
Εντάξει το βρήκα.

Αν και στο βιβλίο λέει

const char *const word = "again";

λειτουργεί με

char *const word = "again";

faif faifgnu

unread,
Feb 26, 2012, 12:51:31 PM2/26/12
to thessaloniki...@googlegroups.com
Γεια σου Δήμο,

Λίγο καθυστερημένη απάντηση, άλλα ποιο βιβλίο διαβάζεις; Ο κώδικας που σου δείχνει είναι επικίνδυνος.... Μπορείς να λύσεις το συγκεκριμένο πρόβλημα (με πολλούς τρόπους) χωρίς να αφαιρέσεις το πρώτο const (το οποίο είναι χρήσιμο) και δίχως τη χρήση δείκτη static_cast σε δείκτη void: παράδειγμα

Σάκης

Demosthenes Koptsis

unread,
Feb 27, 2012, 8:24:15 AM2/27/12
to thessaloniki...@googlegroups.com
οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½.

οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½

C++ How to Program (8th Edition)


http://www.amazon.com/How-Program-8th-Paul-Deitel/dp/0132662361

οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½;


On 02/26/2012 07:51 PM, faif faifgnu wrote:
οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½,

οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½, οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½; οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½.... οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ (οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½) οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½ const (οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½) οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ static_cast οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ void: οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½

οΏ½οΏ½οΏ½οΏ½οΏ½


οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½, 30 οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ 2011 11:44:33 οΏ½.οΏ½. UTC+1, οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ Demosthenes οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½:
οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½.

οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½

const char *const word = "again";

οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½

char *const word = "again";

On Fri, 2011-12-30 at 12:30 +0200, Demosthenes Koptsis wrote:

> οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½,
>
> οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½:


>
> // Fig. 15.3: Fig15_03.cpp
> // Printing the address stored in a char * variable.
> #include <iostream>
> using namespace std;
>
> int main()
> {
> const char *const word = "again";
>
> // display value of char *, then display value of char *
> // static_cast to void *
> cout << "Value of word is: " << word << endl
> << "Value of static_cast< void * >( word ) is: "
> << static_cast< void * >( word ) << endl;
>
> } // end main
>
>

> οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½:


>
> Value of word is: again
> Value of static_cast< void * >( word ) is: 00428300
>

> οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½:
>
> main.cpp|14|error: invalid static_cast from type οΏ½const char* constοΏ½ to
> type οΏ½void*οΏ½|
>
> οΏ½οΏ½οΏ½οΏ½οΏ½;
>
> οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½.


--
TheHackerspace - Thessaloniki's Hackerspace
οΏ½
http://the-hackerspace.org/

faif faifgnu

unread,
Mar 3, 2012, 3:43:08 PM3/3/12
to TheHackerspace
Δεν έχω διαβάσει το συγκεκριμένο αλλά κατά τη γνώμη μου ένα από τα
καλύτερα βιβλία εκμάθησης C++ (και OOP) είναι το "Thinking in C++".
Μπορείς να το κατεβάσεις και δωρεάν:

http://mindview.net/Books/TICPP/ThinkingInCPP2e.html

Happy Coding! :)

Demosthenes Koptsis

unread,
Mar 4, 2012, 6:26:31 AM3/4/12
to thessaloniki...@googlegroups.com
οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½!
οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½.


On 03/03/2012 10:43 PM, faif faifgnu wrote:
> οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½οΏ½
> οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ C++ (οΏ½οΏ½οΏ½ OOP) οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½ "Thinking in C++".
> οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½ οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½ οΏ½οΏ½οΏ½οΏ½οΏ½οΏ½:

faif faifgnu

unread,
Mar 8, 2012, 1:44:11 PM3/8/12
to TheHackerspace
Sorry gia ta greeklish, alla opoios vlepei oti na'nai anti gia
ellinika inai giati i nea ekdosi twn google groups exei provlima me ta
ellinika. Opote egw menw stin klasiki pros to paron :)

On Mar 4, 12:26 pm, Demosthenes Koptsis <demosthen...@gmail.com>
wrote:
> !
> .
>
> On 03/03/2012 10:43 PM, faif faifgnu wrote:
>
>
>
>
>
>
>
> >
> > C++ ( OOP) "Thinking in C++".
> > :

Simos Xenitellis

unread,
Mar 8, 2012, 2:26:19 PM3/8/12
to thessaloniki...@googlegroups.com
On Thu, Mar 8, 2012 at 8:44 PM, faif faifgnu <fai...@gmail.com> wrote:
> Sorry gia ta greeklish, alla opoios vlepei oti na'nai anti gia
> ellinika inai giati i nea ekdosi twn google groups exei provlima me ta
> ellinika. Opote egw menw stin klasiki pros to paron :)
>

Το πρόβλημα παλαιότερα ήταν
1. είχες γυρίσει το περιβάλλον Google Groups στα ελληνικά
2. προσπαθούσες να στείλεις μήνυμα μέσω του περιβάλλοντος Web του Google Groups
3. το λογισμικό έστελνε το μήνυμα σε κωδικοποίηση iso-8859-7 ενώ δεν
έθετε σωστά την κωδικοποίηση στο ίδιο το γράμμα.

Είχα την εντύπωση ότι είχε διορθωθεί, αν όχι θέλει αναφορά σφάλματος.

Σίμος

> On Mar 4, 12:26 pm, Demosthenes Koptsis <demosthen...@gmail.com>
> wrote:
>> !
>> .
>>
>> On 03/03/2012 10:43 PM, faif faifgnu wrote:
>>
>>
>>
>>
>>
>>
>>
>> >
>> > C++ ( OOP) "Thinking in C++".
>> > :
>>
>> >http://mindview.net/Books/TICPP/ThinkingInCPP2e.html
>>
>> > Happy Coding! :)
>

> --
> TheHackerspace - Thessaloniki's Hackerspace
>

> http://the-hackerspace.org/

Reply all
Reply to author
Forward
0 new messages