◆오버로드
▷동일한 이름을 갖고 있지만 다른 동작을 하게 만드는것
▷함수 오버로드를 통해 이름은 같지만 파라미터(인수)를 다르게 줌으로 서로 다른 동작을 시킬 수 있다.
▷클래스 생성자 또한 오버로딩이 가능하다.
//함수 오버로딩의 예
int sum(int a, int b){
return a+b;
}
int sum(int a, int b, int c){
return a+b+c;
}
◆연산자에서의 오버로딩
▷연산자 오버로딩을 통해 동적 클래스가 아닌 Stack 기반 클래스 인스턴스에 동작하는 연산자를 오버로딩 할 수 있다.
//벡터 끼리의 합 연산자 오버로딩
Vector operater+(Vector& v1, Vector& v2){
return Vector(v1.x + v2.x , v1.y + v2.y);
}
◆오버라이딩(Overriding)
▷부모 클래스의 함수의 정의를 자식 클래스에서 새로 덮어쓰는 것을 의미한다.
※클래스 내부의 변수를 this->로 하지만 밖에서는 객체.변수 이름으로 해도 되는것을 알았다.
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <cstring>
class Vector3{
public:
float x,y,z;
Vector3(int x, int y, int z){
//같은 이름이라 this를 사용
this->x=x;
this->y=y;
this->z=z;
}
};
int main(){
Vector3 v=Vector3(10,20,30);
//접근시에는 .을 이용하여 접근
v.x=30;
}
'C++ > C++' 카테고리의 다른 글
[C++] 여러개의 헤더와 소스 (0) | 2023.02.13 |
---|---|
[C++] 열거형 (0) | 2023.02.08 |
[C++] 가상함수 (0) | 2023.02.07 |
[C++] 클래스 상속 / 접근지정자 (0) | 2023.02.03 |
[C++] 클래스 멤버 / 생성자 / 소멸자 (0) | 2023.01.27 |