36 lines
965 B
Markdown
36 lines
965 B
Markdown
|
[< Back](../README.md)
|
||
|
|
||
|
# Exercise: Pay with parameter passing
|
||
|
|
||
|
In this exercise we will look together at what happens when we change a reference
|
||
|
parameter to a value or a const reference.
|
||
|
|
||
|
Let's look at this function
|
||
|
|
||
|
```cpp
|
||
|
void Game::processEvents(InputState & inputState) {
|
||
|
|
||
|
|
||
|
auto event = canvas.pollEvent();
|
||
|
if (event && event.value().type == sf::Event::Closed) {
|
||
|
inputState.close = true;
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
|
||
|
inputState.down = sf::Keyboard::isKeyPressed(sf::Keyboard::Key::Down);
|
||
|
inputState.up = sf::Keyboard::isKeyPressed(sf::Keyboard::Key::Up);
|
||
|
inputState.left = sf::Keyboard::isKeyPressed(sf::Keyboard::Key::Left);
|
||
|
inputState.right = sf::Keyboard::isKeyPressed(sf::Keyboard::Key::Right);
|
||
|
}
|
||
|
```
|
||
|
|
||
|
|
||
|
## Exercise
|
||
|
|
||
|
1. Make `inputState` a value. What happens when you compile the code? Can you explain why?
|
||
|
|
||
|
2. Now make it a `const` reference. What happens? Can you explain why?
|
||
|
|
||
|
3. Revert it back to a non-const reference an make sure the code compile.
|