본 게시물은 내일배움캠프: 언리얼 게임 개발을 수강한 비전공자의 TIL(Today I Learn)을 담고 있습니다.
- 배열
- 배열의 선언
(int / double / char) Numbers[3] // int = 정수, double = 소수, char = 문자
= Numbers[0], Numbers[1], Numbers[2]
(int / double / char) Numbers[3] = {10, 20, 30}
- 배열의 연산
int (int/double)Sum = numbers[0] + numbers[1] + numbers[2] // 배열 합 계산
numbers[1] = 50; // 배열의 값 (두 번째) 수정
- 배열 입력
(int / double / char) Numbers[3];
cin >> numbers[0] >> numbers[1] >> numbers[2]
- 클래스
- 클래스
class Animal {
public : virtual void makesound() = 0; } // public 이외에도 protect, private가 존재하며 이는 자식, 외부 둘 다 공개하는 것이 public, 자식에게만 공개하는 것이 protect, 아무에게도 공개하지 않는 것이 private이다.
class Dog : public Animal {
public : virtual void makesound() override { // virtual: 오버라이딩 허용 // 애니멀로 파생된 애들은 가져가 덮어쓸 수 있다.
cout << " Dogs Barks " << endl;
Dog dog;
dog.makesound();
- 포인터
int a = 10; / int* ptr = &a 의 상태에서 a가 메모리 주소 0x100에 저장되어 있다고 가정하면 a의 값은 10, &a의 주소는 0x100으로 ptr은 0x100을 저장하고 *ptr은 10을 반환한다.
이름 / 주소 / 값 / 타입
a 0x100 10 int
ptr 0x200 0x100 int*
- int* ptr에서 *는 “포인터 타입”을 선언하는 것을 의미.
- *ptr에서 *는 “역참조” 연산을 의미.
- 오버로드, 오버라이드
class Calculator {
public:
// 정수 덧셈
int add(int a, int b) {
return a + b;
}
// 실수 덧셈
double add(double a, double b) {
return a + b;
}
// 세 개의 정수 덧셈
int add(int a, int b, int c) {
return a + b + c;
}
};
int main() {
Calculator calc;
cout << "정수 덧셈: " << calc.add(3, 4) << endl; // 7
cout << "실수 덧셈: " << calc.add(2.5, 3.5) << endl; // 6.0
cout << "세 정수 덧셈: " << calc.add(1, 2, 3) << endl; // 6
오버로딩은 클래스에 계산식을 미리 정해두고 간편하게 불러오는 것을 의미하며 같은 이름의 함수나 연산자를 여러번 정의하는 것으로 함수의 매개변수 목록(매개변수의 개수 or 타입이 다름)이 달라야한다. 함수 호출 시 전달된 인자의 종류에 따라 적절한 함수가 호출된다.
같은 클래스 내에서 사용되며 반환값만 다르다고 해서 오버로딩이 성립되지 않고 컴파일 타임에 결정된다.(정적 바인딩)
결과적으로 오버로딩은 같은 클래스 내에서 함수 이름이 같지만 매개변수가 다르게 정의되며 같은 클래스의 매개변수의 목록이 반드시 달라야 하지만 오버라이딩은 파생 클래스에서 부모 클래스의 메서드를 재정의 하고 다른 상속관계의 클래스를 매개변수, 반환타입이 동일하게 virtual과 override를 사용한다는 것이 특징이다.
'내일배움캠프 언리얼' 카테고리의 다른 글
비전공자의 C++ 개발시점 6 (2025.01.02) (2) | 2025.01.02 |
---|---|
비전공자의 C++ 개발시점 5 (2024.12.31) (3) | 2024.12.31 |
비전공자의 C++ 개발시점 3 (2024.12.27) (1) | 2024.12.27 |
비전공자의 C++ 개발시점 2 (2024.12.26) (2) | 2024.12.26 |
비전공자의 C++ 개발시점 1 (2024.12.24) (1) | 2024.12.24 |