you ever worked with any type of API? Telling all new programmers that they *shouldn't use pointers* is abserd, especially if the windows API takes 10000 pointers per function, as with other APIs.
Thanks, Tyler Littlefield http://tysdomain.com ----- Original Message ----- From: Tamas Marki To: [email protected] Sent: Friday, January 09, 2009 6:20 AM Subject: Re: [c-prog] Re: function returning a 2D array? On Fri, Jan 9, 2009 at 1:55 PM, Tyler Littlefield <[email protected]> wrote: > I still haven't figured out why people avoid type casts like the plague. > You'll survive through their usage. If you type cast things just to "make > them work," then it is bad practice, but for something like that it's > harmless. People suggested wrapping the array up in a struct/class, which > requires an object per-array that you want to pass around, (tacky?). People > have also suggested containers. As he hasn't gotten the hang of pointers > quite yet (or so it seems from post), I'd assume that he'd like to just > stick to a 2-d array, and not some "better method." Typecasting can be a source of very hard to detect errors. It is basically a way of telling the compiler 'this is a pointer to apple' when you have say a pointer to a peach, so in essence you're lying to the compiler to silence some errors. One of C++'s design goals were to avoid the 'pointer hell' that could ensue in a C program when you're abusing pointers and typecasts. Ideally most C++ programs should not use pointers at all, instead use containers to store multiple instances. Carrying over C-style paradigms to C++ is bad practice. Beginners of C++ should not be concerned with pointers at all. One of the best starting books for C++ is Koenig and Moo's Accelerated C++, which avoids pointers until something like chapter 10. In case you absolutely would like to do casting in C++, then use C++ style casts (static_cast, dynamic_cast, reinterpret_cast), instead of plain C-style casting, as they can catch errors the latter can't. -- Tamas Marki __________ NOD32 3752 (20090108) Information __________ This message was checked by NOD32 antivirus system. http://www.eset.com [Non-text portions of this message have been removed]
