[C++] ν¨μ, μ°Έμ‘°μ, λν΄νΈ μΈμ, ν¨μ μ€λ²λ‘λ©, ν¨μ μ€λ²λΌμ΄λ©, μΈλΌμΈ ν¨μ
π‘ ν¨μ ν¬μΈν°
: ν¨μμ μ΄λ¦ == λ©λͺ¨λ¦¬μ μ¬λΌκ° ν¨μμ μμ μ£Όμλ₯Ό κ°λ¦¬ν€λ ν¬μΈν° μμ
void (*ptr_func)(int, int);
: ν¨μλ₯Ό λ λ€λ₯Έ ν¨μμ μΈμλ‘ μ λ¬ν λ μ μ©
π‘ μ°Έμ‘°μ reference
: ν¬κΈ°κ° ν° κ΅¬μ‘°μ²΄μ κ°μ λ°μ΄ν°λ₯Ό ν¨μμ μΈμλ‘ μ λ¬ν λ μ¬μ©
: μ°Έμ‘°μλ₯Ό μ΄μ©ν΄ μ°μ°μ μν -> μ°Έμ‘° λ³μ λΏλ§ μλλΌ λμ λ³μλ λ³κ²½
int x = 10; // λ³μμ μ μΈ
int& y = x; // μ°Έμ‘°μ μ μΈ
cout << "x : " << x << ", y : " << y << endl;
y++; // μ°Έμ‘°μλ₯Ό μ΄μ©ν μ¦κ° μ°μ°
cout << "x : " << x << ", y : " << y << endl;
cout << "xμ μ£Όμκ° : " << &x << ", yμ μ£Όμκ° : " << &y;
: & νμ μ μλ³νκΈ° μν΄ μλ³μλ‘ μ¬μ©
ex) int& : intν λ³μμ λν μ°Έμ‘°
β μ°Έμ‘°μμ νμ μ λμμ΄ λλ λ³μμ νμ κ³Ό μΌμΉν΄μΌνλ€.
β μ μΈκ³Ό λμμ μ΄κΈ°νκ° λμ΄μΌνλ€.
β νλ² μ΄κΈ°νλλ©΄, μ°Έμ‘°νλ λμμ λ³κ²½ν μ μλ€.
π‘ μ°Έμ‘°μ : ν¨μμ μΈμλ‘μ μ λ¬
: ν¨μκ° μ°Έμ‘°μλ₯Ό μΈμλ‘ μ λ¬λ°μΌλ©΄, μ°Έμ‘°μκ° μ°Έμ‘°νκ³ μλ μ€μ λ³μμ κ°μ ν¨μ λ΄μμ μ‘°μν¨
int main(void)
{
int num1 = 3, num2 = 7;
cout << "λ³κ²½ μ num1μ κ°μ " << num1 << "μ΄λ©°, num2μ κ°μ " << num2 << "μ
λλ€." << endl;
Swap(num1, num2);
cout << "λ³κ²½ ν num1μ κ°μ " << num1 << "μ΄λ©°, num2μ κ°μ " << num2 << "μ
λλ€." << endl;
return 0;
}
void Swap(int& x, int& y)
{
int temp;
temp = x;
x = y;
y = temp;
}
π‘ ꡬ쑰체μ μ°Έμ‘°
: μ°Έμ‘°λ₯Ό μ¬μ©νλ μ΄μ κ° κ΅¬μ‘°μ²΄μ μ°Έμ‘°κ° λ§λ€
struct Book
{
string title;
string author;
int price;
};
void Display(const Book&);
int main(void)
{
Book web_book = {"HTMLκ³Ό CSS", "νκΈΈλ", 28000};
Display(web_book);
return 0;
}
void Display(const Book& bk)
{
cout << "μ±
μ μ λͺ©μ " << bk.title << "μ΄κ³ , ";
cout << "μ μλ " << bk.author << "μ΄λ©°, ";
cout << "κ°κ²©μ " << bk.price << "μμ
λλ€.";
}
π‘ λν΄νΈ μΈμ
: κΈ°λ³Έκ°μ΄ 미리 μ μλμ΄ μλ μΈμ
1. ν¨μμ μνμλ§ μ§μ ν μ μλ€.
2. κ°μ₯ μ€λ₯Έμͺ½λΆν° μμνμ¬ μμλλ‘λ§ μ§μ ν μ μλ€
3. κ°μ΄λ° μΈμλ€λ§ λ³λλ‘ λν΄νΈ μΈμλ₯Ό μ§μ ν μλ μλ€.
: ν¨μλ‘ μ λ¬λ μΈμλ μΌμͺ½λΆν° μμλλ‘ λ§€κ°λ³μ λͺ©λ‘μ λμ λλ€
: μΈμμ μ λ¬μ 건λλΈ μ μλ€
void Display(int x, int y, char ch = 'a', int z = 4); // ν¨μμ μν
1. Display(1, 2); // κ°λ₯ν¨ -> display(1, 2, 'a', 4)μ κ°μ.
2. Display(3, 4, 'b'); // κ°λ₯ν¨ -> display(3, 4, 'b', 4)μ κ°μ.
3. Display(5, 6, 'c', 9); // κ°λ₯ν¨ -> display(5, 6, 'c', 8)μ κ°μ.
4. Display(7, 8, , 9); // μ€λ₯ : μΈμ μ λ¬μ 건λλΈ μ μμ.
π‘ ν¨μ μ€λ²λ‘λ©
: κ°μ μ΄λ¦μ ν¨μλ₯Ό μ€λ³΅νμ¬ μ μ -> κ° ν¨μλ§λ€ λ§€κ°λ³μκ° λ€λ₯΄λ€
: μ¬λ¬ ν¨μλ₯Ό νλμ μ΄λ¦μΌλ‘ μ°κ²°
: κ°μ μΌμ μ²λ¦¬νλ ν¨μλ₯Ό λ§€κ°λ³μμ νμμ μ‘°κΈμ© λ¬λ¦¬νμ¬, νλμ μ΄λ¦μΌλ‘ μμ±νκ² ν¨
: == λ€νμ±μ ꡬμ±
: μ€λ²λ‘λ©λ ν¨μλ₯Ό νΈμΆνλ©΄ κ°μ μκ·Έλμ²λ₯Ό κ°μ§λ ν¨μμ μνμ μ°Ύμ νΈμΆνλ€.
1. void Display(const char* str, int n); // λ¬Έμμ΄ strμ nλ² μΆλ ₯ν¨.
2. void Display(const char* str1, const char* str2); // λ¬Έμμ΄ str1κ³Ό str2λ₯Ό μ°λ¬μ μΆλ ₯ν¨.
3. void Display(int x, int y); // x * yλ₯Ό μΆλ ₯ν¨.
4. void Display(double x, double y); // x / yλ₯Ό μΆλ ₯ν¨.
Display("C++", 3); // 1λ² Display() ν¨μ νΈμΆ -> "C++C++C++"
Display("C++", " Programming"); // 2λ² Display() ν¨μ νΈμΆ -> "C++ Programming"
Display(3, 4); // 3λ² Display() ν¨μ νΈμΆ -> 12
Display(4.2, 2.1); // 4λ² Display() ν¨μ νΈμΆ -> 2
Display(4.2, 3); // 3λ²κ³Ό 4λ² λͺ¨λ νΈμΆ κ°λ₯ -> μ»΄νμΌ μ€λ₯κ° λ°μν¨.
π‘ ν¨μ μ€λ²λΌμ΄λ©
: μ΄λ―Έ μ μλ ν¨μλ₯Ό 무μνκ³ , κ°μ μ΄λ¦μ ν¨μλ₯Ό μλ‘κ² μ μνλ κ²
: λ©€λ² ν¨μμ λμλ§μ μ¬μ μνλ κ², ν¨μμ μνμ κΈ°μ‘΄ λ©€λ² ν¨μμ μνκ³Ό κ°μμΌνλ€.
β νμ ν΄λμ€μμ μ§μ μ€λ²λΌμ΄λ©
void Person::ShowPersonInfo() // Person ν΄λμ€
{
cout << name_ << "μ λμ΄λ " << age_ << "μ΄μ
λλ€." << endl;
}
...
void Student::ShowPersonInfo() // Studentλ Personμ νμν΄λμ€
{
// μ¬μ μν ν¨μ
cout << "μ΄ νμμ νλ²μ " << student_id_ << "μ
λλ€." << endl;
}
Student kim(20220920, "μ¬λ", 20);
kim.ShowPersonInfo();
// νμ ν΄λμ€μμ κΈ°μ΄ ν΄λμ€μ μλ λ©€λ² ν¨μ νΈμΆ
kim.Person::ShowPersonInfo();
* Student κ°μ²΄λ μμ μ΄ μ¬μ μν ShowPersonInfo() + κΈ°μ΄ ν΄λμ€μ μλ ν¨μ λλ€ νΈμΆ
π‘ μΈλΌμΈ ν¨μ
: ν¨μ νΈμΆ -> (μ€ν) λ§€κ°λ³μ, νΈμΆ λλλ€ λμκ° μ£Όμκ° μ μ₯ -> (μ€ν)μ§μ λ³μ μ μ₯ -> νΈμΆ λλλ€ μ μ₯λ μ£Όμκ°μΌλ‘ λμκ°λ€ -> μ€νμ μ μ₯λ ν¨μ μ 보 μ κ±°
: νΈμΆλ λ ν¨μμ λͺ¨λ μ½λλ₯Ό νΈμΆλ μ리μ λ°λ‘ μ½μ νλ λ°©μ
: ν¨μ νΈμΆμκ° μ μ½, νΈμΆ κ³Όμ μΌλ‘ μκΈ°λ μ¬λ¬κ°μ§ μ΄μ ν¬κΈ°
inline int Sub(int x, int y)
{
return x - y;
}
inline void Print(int x)
{
cout << "κ³μ° κ²°κ³Όλ " << x << "μ
λλ€.";
}
int main(void)
{
int num1 = 5, num2 = 3;
int result;
result = Sub(num1, num2);
Print(result);
return 0;
}
π‘ λ§€ν¬λ‘ ν¨μ
: #define ν¨μμ μ μ
: λͺ¨λ μΈμλ₯Ό κ΄νΈ({})λ‘ κ°μΈμΌνλ€.
#include <stdio.h>
#define SQR(X) X*X
int main(void)
{
int result;
int x = 5;
puts(SQR(10)); // 100
puts(SQR(x)); // 25
puts(SQR(x+3)); // 23
return 0;
}