When declaring a function, which keyword is used to specify that the function should have a default argument?

  • #NAME?
  • const
  • default
  • default_argument
In C++, when declaring a function with default arguments, the = operator followed by a default value is used to specify the default argument. For example, int func(int a, int b = 0) declares a function func with a default argument of 0 for the parameter b.

When might an inline function increase the overall size of the compiled code?

  • When Used Sparingly
  • When Used in Critical Path Code
  • When Used in Header-Only Libraries
  • When Used in Isolated Modules
Inline functions can increase the overall size of the compiled code when used in header-only libraries. Since the function's code is included in each translation unit that includes the header, it can result in code duplication and larger executables.

The ternary operator, represented as ? :, can serve as a shorthand for a simple if-else statement.

  • ?else
  • ?if
  • ?then
  • ?when
The ternary operator, represented as ? :, provides a shorthand way to express a simple if-else statement. It evaluates a condition and returns one of two values depending on whether the condition is true or false. This concise syntax is often used to make code more compact and readable.

Given the expression a = b = c, which assignment is evaluated first?

  • Evaluation Order is Not Defined
  • a = b
  • b = c
  • c = a
In C and C++, assignment operators associate right-to-left. So, b = c is evaluated first, assigning the value of c to b, and then a = b assigns the value of b to a. This behavior is consistent with other binary operators in these languages.

Diane observed that even after explicitly marking a function as inline, the compiler did not inline it. What factors might the compiler consider when making this decision?

  • CPU clock speed, available RAM, function parameters, code comments
  • Compiler version, variable scope, CPU architecture, function visibility
  • Data types used in the function, available disk space, code organization, compiler brand
  • Function complexity, compiler optimization settings, available memory, function size
The decision of whether to inline a function is influenced by various factors. These include the complexity of the function, compiler optimization settings, available memory, and the size of the function. If the function is too complex or exceeds a certain size, the compiler may choose not to inline it, even if marked as such.

If a function is declared multiple times but defined only once, will the program compile successfully?

  • It depends on the compiler
  • It depends on the function name
  • No
  • Yes
Yes, if a function is declared multiple times but defined only once in a program, it will compile successfully. This is because function declarations inform the compiler about the function's signature and return type, allowing it to check for consistency when the function is called in different parts of the code. The definition provides the actual implementation.

Is it possible to specify default arguments only for some middle arguments in a function, skipping the last ones?

  • Default arguments can only be specified for the first arguments.
  • Default arguments can only be specified for the last arguments.
  • No, default arguments must be specified for all or none of the function's arguments.
  • Yes, default arguments can be specified for middle arguments.
In C++, you can specify default arguments for some middle arguments while skipping the last ones. However, all arguments to the right of a default argument must also have default values.

In what scenarios should the use of inline functions be avoided?

  • When the function contains loops.
  • When the function is complex and large.
  • When the function is frequently called with a small amount of code.
  • When the function is used in a performance-critical section of code.
Inline functions should be avoided in scenarios where the function is complex and large. The purpose of inline functions is to reduce function call overhead, but in the case of large or complex functions, inlining can lead to code bloat, impacting performance and code maintainability. In such cases, it's better to use regular functions.

Michael wants to ensure that his overloaded function is chosen correctly during compile time, even in ambiguous cases. What practices should he follow?

  • Avoid using the same function name
  • Use a different return type
  • Use different parameter types
  • Use explicit type casting
To ensure that overloaded functions are chosen correctly during compile time, developers should use different parameter types. This helps the compiler distinguish between the various overloaded functions and select the appropriate one based on the provided arguments.

Sarah is creating a math library and wants to write a sum function that can add two integers, two floats, or an integer and a float. Which C++ feature should she use?

  • Function Overloading
  • Function Overriding
  • Operator Overloading
  • Type Casting
Sarah should use Function Overloading. This allows her to define multiple functions with the same name but different parameter types. In this case, she can create overloaded functions that accept different combinations of integers and floats to achieve the desired behavior for her sum function.