본문 바로가기
College Study/C++ (ENG)

[C++] New Concepts (ENG)

by 2den 2021. 12. 5.
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

댓글