|
I would guess so - nevertheless they shouldn't be used. Here are some reasons:
- A wrong "bad" can cause havoc yet, if C-style casts are used you can’t “grep” the source code for them.
- There are many distinct reasons to cast. For example, one is to remove const-ness; another is to “down-cast” in a class hierarchy. With C-style casts all casts look the same and so you have to guess at the intent. Function style casts are explicit and self documenting in this respect.
- With C-style casts a simple mistake can change the type of cast and result in unintentional behaviour. For example if your casting to remove const-ness and then you change the type you’re casting it can changes into a “reinterpret” cast. With function style casts the compiler makes sure you can’t cast “more” then you should. i.e. a const_cast can only remove const-ness and not change the type.
- Casting is ugly – a well designed program shouldn’t have any – or at most only a few in the lowest level of a system. Casts should be ugly as design errors should be visible.
I could go on. There are just so many problems it just not funny.
Steve
|
|
|
|
|
Stephen Hewitt wrote: I could go on. There are just so many problems it just not funny.
What did you mean by that?
Maxwell Chen
|
|
|
|
|
Only that I could have made the list of problems with C-style casts longer.
Steve
|
|
|
|
|
So what's happening?! You guys like to vote 1 very much??
Maxwell Chen
|
|
|
|
|
|
I think he is trying to convert a double to int.
Maxwell Chen
|
|
|
|
|
|
Nibu thomas wrote: Faqs are worth a read
Maxwell Chen
|
|
|
|
|
|
Nibu thomas wrote: I can see that question coming!
The diviner ~~~
Maxwell Chen
|
|
|
|
|
hi,
use reinterpret_cast value;
snippet of code.
int x;
double y = 5.66;
now x = reinterpret_cast <int> y; // cast double to int data type.
this is type conversion in c++.
good luck,
uday.
uday kiran
-- modified at 0:57 Wednesday 10th May, 2006
|
|
|
|
|
You don't need to use reinterpret_cast in this case and in fact shouldn’t: casting from double to int is implicit so the following will do the trick:
double d = 3.5;
int i = d;
Is you wanted to make the cast explicit (and there is good reason to do so as it will suppress a warning) static_cast is the right cast for the job. i.e.
double d = 3.5;
int i = static_cast<int>(d);
Part of the point of adding the function style casts was to make your intent specific thus it is important to use the right cast for the job.
Steve
|
|
|
|
|
|
Math.round
public static int round( float a )
Returns the value of the argument rounded to the nearest int value.
--------------------------
just do it like that :
#include <math.h>
:
double MyDouble = 2345.5678 // MyDouble is a Double.
int MyInt = ROUND(MyDouble) // MyInt contains 2346.
:
double MyDouble = 2345.4678 // MyDouble is a Double.
int MyInt = ROUND(MyDouble) // MyInt contains 2345.
|
|
|
|
|
csc wrote: public static int round( float a )
Is this in C++ ? I mean that public modifier.
csc wrote: int round( float a )
csc wrote: ROUND(MyDouble)
Case sensitive?!
No '; ' , it doesn't compile.
Maxwell Chen
|
|
|
|
|
yes maybe in next time,isnt possible!?
|
|
|
|
|
Basic maths will do the trick. Try this:
double d = 2345.5678;
int i = d + 0.5
Steve
|
|
|
|
|
hi
Do we have any function to know the operating name on which one is currently working on?
|
|
|
|
|
GetVersionEx(...)
Sample[^]. This doesn't use the above function but you will enjoy this.
Nibu thomas
Software Developer
Faqs by Michael dunn
|
|
|
|
|
|
I'm sorry I meant to say if there is a method that test if a File exist or not?
thanks!
alantop
|
|
|
|
|
one way
WIN32_FIND_DATA m_data;
HANDLE hFile;
hFile=FindFirstFile(filename,&m_data)
if(hFile==INVALID_HANDLE_VALUE)
|
|
|
|
|
Make sure you close the handle if the file is found.
Anyone who thinks he has a better idea of what's good for people than people do is a swine.
- P.J. O'Rourke
|
|
|
|
|
sure and thank you
use
FindClose(hFile);
|
|
|
|
|
You can use SHGetFileInfo()
The prototype of the function is as follows:
DWORD_PTR SHGetFileInfo( <br />
LPCTSTR pszPath,<br />
DWORD dwFileAttributes,<br />
SHFILEINFO *psfi,<br />
UINT cbFileInfo,<br />
UINT uFlags<br />
);
_AnShUmAn_
|
|
|
|