bool colideroom(float x, float y, float z)
{
for (int i = 0; i <= NumBoxes - 1; i++)
{
if (room[i].Px >= x)
{
if(room[i].Nx <= x)
{
if (room[i].Pz >= y)
{
if(room[i].Nz <= y)
{
if (room[i].Py >= z)
{
if (room[i].Ny <= z)
{
return true;
}
}
}
}
}
}
}
return false;
}
|
🔒 Locked
stupid pointers
Advertisement
Original Post
ok, i have this peice of code here, what i want to do is be able to change the values of x, y, z from within the function. I know i can do this with points but i can't get it working. Could someone show me what i need to do? And i know i can make the routine much simpler but i have it this way because i need to modify xyz based on each step of the conditional statements.
duckbob
*code*
[edit: added source tags]
Edited by - Magmai Kai Holmlor on January 15, 2002 1:13:46 AM
Those are called references if you didn''t alraeyd know that. They work like pointers do, but use the non-pointer syntax (and can''t point to null).
i just have trouble with the concept, i understand that they are useful, and make things possible, but the first time i really learned programing (able to make somthing that did somthing useful) was in visual basic, which you don''t have to think about how it can be coded but only how it can be done
duckbob
duckbob
Not criticising your coding style, but maybe you're not aware of the && operator?
- seb
Edited by - bsxrider on January 15, 2002 7:26:01 PM
|
- seb
Edited by - bsxrider on January 15, 2002 7:26:01 PM
did ya read my post, i have it like that for a reason, i know i can use the && operator, but once i got my problem fixed, which i did, i put operations between each step which is dependant on each step...progressivly, so in this instance i didn''t need to condence that in this instance
Alternately to stop lots of indented if's
Just personal taste I suppose
Edited by - Mark Duffill on January 17, 2002 8:34:46 AM
|
Just personal taste I suppose
Edited by - Mark Duffill on January 17, 2002 8:34:46 AM
When you have a function that can or will modify its arguments, use pointers rather than references. In other words...
Use this:
Here's why. If you're calling the reference version of the function, the call will look something like this: blah(var1, var2) . Just from looking at that line of code, can you tell whether or not those arguments are going to be modified? No. For all you know, they might just be passed by value. To know better, you'd have to have remembered how you implemented blah , and that gets exponentially difficult and impractical as your project grows. Now, if you use pointers in that function, it must be invoked like this: blah(&var1, &var2) . To pass those objects to the function through the pointers, we need to take the objects' addresses. The only reason we'd do that—following our convention—is to modify them. So, the only types of references you should ever use are const references, with very few exceptions. Even Bjarne effectively says this in his book. Even if you choose to ignore Bjarne and me, learn pointers . Otherwise, forget C++ and learn Visual Basic, Pascal, Java, or C#.
Edited by - merlin9x9 on January 17, 2002 12:57:50 PM
Use this:
|
Here's why. If you're calling the reference version of the function, the call will look something like this: blah(var1, var2) . Just from looking at that line of code, can you tell whether or not those arguments are going to be modified? No. For all you know, they might just be passed by value. To know better, you'd have to have remembered how you implemented blah , and that gets exponentially difficult and impractical as your project grows. Now, if you use pointers in that function, it must be invoked like this: blah(&var1, &var2) . To pass those objects to the function through the pointers, we need to take the objects' addresses. The only reason we'd do that—following our convention—is to modify them. So, the only types of references you should ever use are const references, with very few exceptions. Even Bjarne effectively says this in his book. Even if you choose to ignore Bjarne and me, learn pointers . Otherwise, forget C++ and learn Visual Basic, Pascal, Java, or C#.
Edited by - merlin9x9 on January 17, 2002 12:57:50 PM
Topic Locked
This topic has been locked by a moderator. New replies are not allowed.
Sign in to reply to this topic.
Advertisement