일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- px4
- 리눅스커널
- pwn.college
- pwncollege
- Leviathan
- 리눅스
- radare2
- 시스템프로그래밍
- 커널
- css
- 드론
- 컴퓨터구조
- Pwnable.kr
- 어셈블리어
- Bandit
- C++
- kernel
- 리눅스 커널
- 알고리즘
- 취약점
- 리버싱
- 시스템해킹
- wargame
- 워게임
- write up
- 시그널
- 시스템
- C언어
- 시스템 프로그래밍
- 프로그래밍
Archives
- Today
- Total
Computer Security
#5 C++ 오버로딩 본문
반응형
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++의 연산자 오버로딩
C++은 연산자 오버로딩 문법을 활용해 연산자 또한 원하는 방식으로 수정하여 사용할 수 있다는 특징이 있다.
ex) 더하기(+)를 더하는 개념이 아닌 새로운 개념으로 수정해서 사용가능하다!
1) 기존에 존재하는 연산자만 정의할 수 있다.
2) 멤버 연산자(.), 범위 지정 연산자(::) 등의 몇몇 연산자는 오버로딩 처리할 수 없다.
3) 기본적인 연산자의 규칙을 따라야한다.
4) 오버로딩이 된 연산자의 피연산자 중 하나는 사용자 정의 자료형 이어야만 한다.
코드 예시
#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); }
//operateor: 나는 +를 새로 정의 할꺼야~ 뭐로? 리턴 값 뜻 대로 하나의 Person객체에 적용
//(두 문자열을 더한값으로출력)
void showName() { cout << "이름: " << name << '\n'; }
};
int main(void) {
Person person1;
Person person2("고동산");
Person result = person1 + person2;
result.showName();
system("pause");
}
결과 값
이렇든 C++에서는 오버로딩을 이용해 동일한 이름의 함수들을 수정해서 사용 할 수 있다.
반응형
'프로그래밍 > C++' 카테고리의 다른 글
#7 정적멤버,상수멤버 (0) | 2022.06.18 |
---|---|
#6 C++ 프렌드 (0) | 2022.06.17 |
#4 C++ 클래스 상속 (0) | 2022.06.15 |
#3 C++ 생성자와 소멸자 (0) | 2022.06.14 |
#2 C++의 클래스 (0) | 2022.06.13 |
Comments