728x90
반응형
Bool Data
if (IsHero() == false)
{
// ...
}
if (IsHero() == true)
{
// ...
}
Reference
Alias. Can not be NULL. Must be initialized when declared.
int number = 100;
int& reference = number;
Can not change what refer to.
int number1 = 100;
int number2 = 200;
int& reference = number1;
reference = number2; // number1 == 200, number2 == 200, reference == 200
Reference as a parameter:
// pointer
void Swap(int* number1, int* number2)
{
int temp = *number1;
*number1 = *number2;
*number2 = temp;
}
// reference
void Swap(int& number1, int& number2)
{
int temp = number1;
number1 = number2;
number2 = temp;
}
Safer cause we can not point to unmounted memory.
Actually, the computer doesn't know what the reference means.
Standard
1. Give the parameters better names.
bool TryDivide(Vector& result, Vector& a, Vector& b);
2. Constantize read-only parameters.
bool TryDivide(Vector& result, const Vector& a, const Vector& b);
const Vector a;
const Vector b;
Vector result;
TryDivide(a, b, result); // compile error
TryDivide(result, a, b); // ok
3. Set the read-only parameter to a constant reference and the parameter for the output to a pointer.
TryDivide(&a, b, c);
4. Put the function assert to debug the case that 'a' is NULL.
{
assert(a!=NULL);
// ...
}
728x90
반응형
'College Study > C++ (ENG)' 카테고리의 다른 글
[C++] File I/O (ENG) (0) | 2022.01.02 |
---|---|
[C++] File I/O (ENG) (0) | 2022.01.02 |
[C++] String (ENG) (0) | 2021.12.05 |
[C++] Input (ENG) (0) | 2021.12.05 |
[C++] Output (ENG) (0) | 2021.12.05 |
댓글