06. 오버로딩
함수 오버로딩
C++은 동일한 이름의 멤버 함수를 다양한 방식으로 활용하기 위해 오버로딩 사용
#include<iostream>
#include<string>
using namespace std;
class Person{
private:
string name;
public:
Person() { name = "임꺽정"; }
Person(string name) : name(name) { }
void showName() {
cout << "이름: " << name << '\n';
}
};
int main(void) {
Person person1;
person1.showName();
Person person2("나동빈");
person2.showName();
system("pause");
}
연산자 오버로딩
C++은 연산자 오버로딩 문법을 활용해 연산자 또한 원하는 방식으로 수정하여 사용 가능
- 기존에 존재하는 연산자만 정의 가능
- 멤버연산자(.), 범위 지정 연산자(::) 등의 일부 연산자는 불가
- 기본적인 연산자 규칙을 따라야 함
- 오버로딩 된 연산자의 피연산자 중 하나는 사용자 정의 자료형이어야 함
#include<iostream>
#include<string>
using namespace std;
class Person{
private:
string name;
public:
Person() { name = "임꺽정"; }
Person(string name) : name(name) { }
Person operator +(const Person& other) { return Person(name + " & " + other.name); }
void showName() {
cout << "이름: " << name << '\n';
}
};
int main(void) {
Person person1;
Person person2("나동빈");
Person result = person1 + person2;
result.showName();
system("pause");
}
출처
'C++' 카테고리의 다른 글
C++ #07 캡슐화 +접근제한지시자 (0) | 2021.11.29 |
---|---|
C++ #05 정적할당, 동적할당 (0) | 2021.11.29 |
C++ #04 클래스 상속 (0) | 2021.11.29 |
C++ #03 생성자와 소멸자 (0) | 2021.11.29 |
C++ #02 클래스 (0) | 2021.11.29 |