ν¨μλ νλ‘κ·Έλλ°μ ν΅μ¬μ΄λ€. λ³μλ λ°μ΄ν°κ³ ν¨μλ λμμ μλ―Ένλ€. μ°λ¦¬λ νλ‘κ·Έλλ°μ ν΅ν΄μ μνλ κ²μ ꡬνν΄μΌ νλ©°, ꡬννλ λ°©λ²μ΄ ν¨μμΈ κ²μ΄λ€. νλ‘κ·Έλλ°μ ν¨μλ‘ μμν΄μ ν¨μλ‘ λλλ€. μ€λμ ν¨μμ λν΄ μμ보μ.
β ν¨μμ μ€μμ±
ν¨μλ₯Ό μκ°ν λ, μ»΄ν¨ν°μ κ΄μ μμλ μ½λλ₯Ό μ€ννλ νλ¦μ λ΄κ³ μλ κ³³μ΄ ν¨μλ€. κ°λ°μμ κ΄μ μμλ μ½λμ κ°λ μ±κ³Ό μ¬μ¬μ©μ±μ μν΄ μ§μ λ§λλ κ²μ ν¨μλΌκ³ μκ°νλ€. λ λ€ μ€μνλ€. μ΄μ체μ μ μμ€ν ν¨μ, μΈμ΄μμ μ 곡νλ main ν¨μμ κ°μ΄ νμμ μΈ ν¨μλ€μ΄ μλ€. μ΄ ν¨μλ€μ μ μνμ§ μκ±°λ μλͺ» ꡬνλμ΄ μλ€λ©΄ μΉλͺ μ μΈ κ²°ν¨μΌλ‘ μ΄μ΄μ§κΈ° λλ¬Έμ λ§€μ° μ€μνλ€κ³ ν μ μλ€. νμ§λ§ κ±±μ νμ§ λ§μ. μ°λ¦¬κ° μ΄λ° ν¨μλ€μ μλλ°©μκ³Ό μ리κΉμ§ μ νμλ μλ€. μ΄μ체μ 컀λλ¨μ λ§λμ νλ₯ν λΆλ€μ΄ μκΈ° λλ¬Έμ μ°λ¦¬λ νΈνκ² κ·Έ μμμ λ°μ΄λλ©΄ λλ κ²μ΄λ€. λν μ°λ¦¬λ κ³ μκ° λκΈ° μν΄μλ μ¬μ©μ μ§μ ν¨μ(μ°λ¦¬κ° λ§λλ ν¨μ)λ₯Ό μ λ§λ€μ΄μΌ νλ€. μμ μκΈ°νλ―μ΄ νλ‘κ·Έλ¨μ ν¨μλ‘ μμν΄μ ν¨μλ‘ λλκΈ° λλ¬Έμ ν¨μλ₯Ό λ§λ€ λλ 'μ λλ‘' λ§λ€ μ€ μμμΌ νλ€.
β ν¨μ λ€μ΄λ°
μ΄μ μ κ°λ°μλ€μκ² μ½λ©νλ©΄μ κ°μ₯ νλ κ²μ΄ 무μμ΄λκ³ μ‘°μ¬ν κ²°κ³Όλ₯Ό λ³Έμ μ΄ μλ€. 50% κ°κΉμ΄ λ΅λ³μΌλ‘ 'λ€μ΄λ°'μ κΌ½μλ€. κΈ°λ₯ꡬνμ 볡μ‘ν¨μ΄λ μ μ μλ μλ¬κ° μλ ν¨μ, λ³μμ μ΄λ¦μ§κΈ°κ° κ°μ₯ νλ€λ€κ³ λ΅λ³ν κ²μ΄λ€. ν¨μ μ΄λ¦μ λ΄κ° μνλ λ°©μμ΄λ μ¬ννκ² μ§μ μλ μλ€. νμ§λ§ μ½λ©μ νΌμ νλ κ² μλλ€. λλΆλΆμ κ°λ°μλ€μ λ€λ₯Έ μ¬λμ΄ λ³΄κΈ°μλ μ΄ ν¨μμ μν μ΄ λ¬΄μμ΄κ³ λͺ©μ μ΄ λ¬΄μμΈμ§ ν λμ λ΄λ μ μ μλ μ΄λ¦μΌλ‘ μ§μΌλ €κ³ λ Έλ ₯νλ€. λλ¬Έμ λ€μ΄λ°μ΄ μ΄λ ΅λ€λ κ²μ΄λ€.
μ°μ ν¨μμ μ΄λ¦μ λμ¬λ‘ μμν΄μΌ νλ€. ν¨μκ° νμλ₯Ό λνλ΄λ κ²μ΄κΈ° λλ¬Έμ κ·Έμ λ§λ λμ¬λ‘ μμνλ©° λ€μ λͺ©μ μ΄κ° μ€λ©΄ λλ€. μλ₯Ό λ€μ΄, μμ΅μ κ³μ°νλ ν¨μλΌλ©΄ calcProfit μ΄λΌκ³ μ§μ μ μλ€. λ°λ©΄μ λ³μλ λͺ μ¬λ‘ μμνλ€. μ΄μ λ κ°λ¨νλ€. λ³μμ΄μ λ°μ΄ν°μ΄κΈ° λλ¬Έμ νΉμ νμλ₯Ό νλ κ²μ΄ μλλ€. μμ΅μ λ»νλ λ³μλ λ¨μ§ profit μ΄λΌκ³ μ§μΌλ©΄ λλ€. λ§μ½ λ―Έμ€ν μμ΅μ λ³μλ‘ λνλ΄λ €λ©΄ μ΄λ»κ² ν΄μΌν κΉ? λ΄ κ²½μ°λ unrealizedProfit μ΄λΌκ³ μ§λλ€. μ λ΅μ μμ§λ§ ν¨μλ νμλ₯Ό κ°μ‘°νκ³ λ³μλ λ°μ΄ν°λ₯Ό κ°μ‘°νλ©΄ λλ€.
β ν¨μ μ’ λ₯
C++μμ ν¨μμ μ’ λ₯λ μ μν¨μ, μ μ ν¨μ, λ©€λ²ν¨μ, λλ€ν¨μκ° μλ€. μ μν¨μμ μ μ ν¨μλ μ μμ μΈ νΉμ±μ κ°λ ν¨μλ€. λ©€λ²ν¨μλ ν΄λμ€μ λ©μλλ₯Ό μλ―Ένλ€. λ€μ μμ λ₯Ό ν΅ν΄ μ΄ν΄ν΄λ³΄μ.
void calcProfit(double* profit) // μ μ ν¨μ
{
*profit = *profit * 1.1;
}
class Account
{
public:
Account(); // μμ±μ
void calcAccountProfit(); // λ©€λ² ν¨μ
static int getAccountsNum(); // μ μ ν¨μ
}
int main() // λ©μΈ ν¨μ
{
int var = 5;
int result = [] (int var) // λλ€ ν¨μ
{
return var % 2 == 0 ? : var : var + 1;
}(var);
}
μ μ ν¨μμ μ μ ν¨μ, λ©€λ² ν¨μμ λλ€ ν¨μλ₯Ό κ°λ¨νκ² μμ±νλ€. calcProfitμ μ μ ν¨μλ‘ λμΌ νμΌ λ΄μμλ μ΄λμλ μ§ μ κ·Όμ΄ κ°λ₯νλ€. ν€λνμΌμ νμ©νλ€λ©΄ λ€λ₯Έ νμΌμμλ μμ½κ² μ μ ν¨μλ₯Ό νΈμΆν μ μλ€. main ν¨μ λν μ μ ν¨μλ€. κ°μΈμ μΌλ‘λ μμ κ°μ²΄ μ§ν₯(λͺ¨λ λ°μ΄ν°μ λ©μλκ° ν΄λμ€μ μν΄ μλ κ°λ )μ μΆκ΅¬νκΈ° λλ¬Έμ μ μ λ³μλ ν¨μλ μ§μνλ νΈμ΄λ€.
λ©€λ² ν¨μλ μμΌλ‘ λ§λ₯΄κ³ λ³λλ‘ λ€λ£° μμ μ΄λκΉ μ¬κΈ°μλ κ°λ¨νκ²λ§ λ£μλ€. Account ν΄λμ€μ calcAccountProfitμ΄λΌλ λ©€λ² ν¨μμ΄λ€. Account()λΌλ μμ±μ λν λ©€λ² ν¨μμ΄λ€.
μ μ ν¨μλ staticμΌλ‘ λΆμ ν΄λμ€μ μν ν¨μμ΄λ€. ν΄λμ€μ μνμ§λ§ μΈμ€ν΄μ€μ 무κ΄νκ² μλνλ―λ‘ ν΄λμ€ ν¨μλΌκ³ λ λΆλ¦°λ€. μ μ ν¨μμμλ μ μ λ³μλ μ μ λ³μλ§ μ¬μ©ν μ μκ³ λ©€λ²λ³μλ μ¬μ©ν μ μλ€.
λλ€ ν¨μλ μ΅λͺ ν¨μλ‘λ λΆλ¦¬λ©°, ν¨μ λ΄μμλ μ¦μ νμν ν¨μλ₯Ό λ§λ€μ΄ λΌ λ μ μ©νλ€. λ³΄ν΅ functionμ΄λ ν¨μ ν¬μΈν°λ₯Ό λ겨 μ€ κ²½μ°κ° λ§λ€. μλ₯Ό λ€μ΄ callbackν¨μλ₯Ό λ±λ‘νλ€κ±°λ κ°λ¨ν μ€λ λλ₯Ό λ§λλ κ²½μ°μ κΆ μ΄ ν¨μλ₯Ό λ°λ‘ λ§λ€μ§ μκ³ λ°λ‘ μ€ν κ°λ₯ν ν¨μλ₯Ό λ§λ€ λ μ°μΈλ€. μ€μ μ¬μ© μμ λ λ°λ³΅λ¬Έ μ¬ν μ±ν°μ find_ifμ λ€μ΄κ°λ λλ€ ν¨μλ₯Ό μ°Έκ³ νμ.
β ν¨μ μ€λ²λ‘λ©
ν¨μ μ€λ²λ‘λ©μ΄λ κ°μ ν¨μ μ΄λ¦μ μ°λ©΄μ 맀κ°λ³μμ κ°μλ νμ μ λ€λ₯΄κ² ν΄μ λ§μΉ λ€λ₯Έ ν¨μμ²λΌ μΈμνκ² νλ κ²μ΄λ€. μ»΄νμΌλ¬κ° ν¨μ λΆλΆμ μ»΄νμΌ ν λ λ΄λΆμ μΌλ‘ ν¨μμ΄λ¦κ³Ό 맀κ°λ³μμ κ°μμ νμ μ λ¬Άμ΄μ μ λν¬ν ν¨μ μ΄λ¦μΌλ‘ λ§λ€μ΄ λΈλ€. μ΄λ₯Ό νμ©νμ¬ ν¨μ μ΄λ¦μ κ°μ§λ§ 맀κ°λ³μλ₯Ό λ€λ₯΄κ² ν΄μ λ€λ₯΄κ² λμνλ ν¨μλ€μ λ§λ€ μ μλ€.
#include <iostream>
void printArguments(int var1)
{
std::cout << "you call fisrt func => " << var1 << endl;
}
void printArguments(int var1, var2)
{
std::cout << "you call second func => " << var1 << ", " << var2 << endl;
}
void printArguments(double var1)
{
std::cout << "you call third func => " << var1 << endl;
}
void printArguments(double var1, int var2);
{
std::cout << "you call fourth func => " << var1 << ", " << var2 << endl;
}
int main()
{
printArguments(4);
printArguments(4,7);
printArguments(3.3);
printArguments(3.3,12);
}
// μ€νκ²°κ³Ό
// you call fisrt func => 4
// you call second func => 4, 7
// you call third func => 3.3
// you call fourth func => 3.3, 12
ν¨μμ νλΌλ―Έν°μ νμ κ³Ό κ°μμ λ°λΌ νΈμΆλλ ν¨μκ° λ€λ₯Έ κ²μ μ μ μλ€. μ΄μ²λΌ ν¨μ μ€λ²λ‘λ©μ ν΅ν΄ ν¨μ μ΄λ¦μ κ°μ§λ§ λ€λ₯΄κ² μΈμνλ ν¨μλ€μ μ¬λ¬κ° λ§λ€ μ μλ€. μ°Έκ³ λ‘ ν¨μμ 맀κ°λ³μλ₯Ό νλΌλ―Έν°λΌκ³ νκ³ μ€μ λ‘ ν¨μμ νλΌλ―Έν°λ‘ λ€μ΄κ°λ λ³μλ₯Ό μΈμ(Argument)λΌκ³ νλ€.
ν¨μλ μμΌλ‘λ κ³μ λ±μ₯ν κ²μ΄λ€. κ°μ ν¨μ, ν¨μν¬μΈν°μ κ°μ μ‘°κΈ λ μ΄λ €μ΄ κ°λ λ€λ μλ€. ν¨μλ μΆνμλ μ΄μΌκΈ° ν λΆλΆμ΄ λ§κΈ° λλ¬Έμ μ°¨κ·Όμ°¨κ·Ό μ§νν΄λ³΄μ.
'νλ‘κ·Έλλ° μΈμ΄ > C++ κΈ°μ΄' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[C++] 13-1. μ μΆλ ₯(feat. νμ€μ μΆλ ₯κ³Ό νμΌμ μΆλ ₯) (2) | 2023.05.17 |
---|---|
[C++] 12. λ¬Έμμ΄(feat. μ§λ ¬ν) (0) | 2023.05.06 |
[C/C++] 10. ν¬μΈν°(feat. μ€λ§νΈ ν¬μΈν°) (0) | 2023.04.26 |
[C/C++] 9. λ°°μ΄(feat. vector & array) (0) | 2023.04.25 |
[C/C++] 8. λ°λ³΅λ¬Έ(μ¬ν)(feat. iterator, predicate, lambda) (0) | 2023.04.22 |
λκΈ