More actions
imported>computer6561 No edit summary |
imported>computer6561 No edit summary |
||
| Line 49: | Line 49: | ||
** Console UI | ** Console UI | ||
** FIle I/O | ** FIle I/O | ||
* 연산자 오버로딩 | |||
class A{ | |||
friend A& operator=; //4번 | |||
A& operator=(int n){ | |||
}//1번 | |||
A& operator=(class A&){ | |||
}//2번 | |||
}; | |||
A& operator=(int n, class A&){ | |||
}//3번 | |||
** 1번 | |||
** 2항 연산의 뒷부분 피 연산자가 숫자일 경우 | |||
** 2번 | |||
** 2항 연산의 뒷부분 피 연산자가 자기 자신(같은 형식)일 경우 | |||
** 3번 | |||
** '3+a'와 같은 앞부분 피 연산자가 객체일 경우, 1번 식을 선언 함으로써 사용 | |||
** 4번 | |||
** friend를 이용해 3번의 전역 함수를 friend로 선언해 줘야 사용 가능 | |||
** 생성자(소멸자), 복사 생성자, 대입 연산자 오버라이딩 메소드는 C++가 만드므로 항상 조심해줘야 하며 항상 확인해야 한다. | |||
** ~~스테이크를 시켰더니 스테이크 제료가 나왔다. 근데 왠지 레스토랑에서 제공한 소스가 상한 것 같아 열어보니 상해 있다...랄까~~ | |||
* Rvalue | |||
** Lvalue : 값을 대입하고 쓰는 데 의미가 있어야 한다 | |||
** Rvalue : 이름이 없다. 고로 의미가 없다. | |||
** 대입연산자 좌측에 절대 올 수 없는 값 | |||
** TO(Temporary Object, 임시 객체) 또한 Rvalue | |||
** 이름이 없는 객체. 나중에 알려주세요 | |||
** 객체를 return by value 할 때, 객체를 생성하지 않고 클래스를 바로 인스턴스화 할 때 생성 | |||
* Rvalue Reference | |||
** 아 쓰기 힘들어 | |||
* Move semantics | |||
** 너도.... | |||
** 아마 임시 객체의 copy는 deep copy를 할 필요는 없는 것 같다... | |||
** 다만 임시 객체의 할당된 공간을 그냥 없애자... | |||
* | |||
== 코드 == | == 코드 == | ||
Revision as of 03:54, 6 April 2015
연산자 오버로딩을 발동합니다 템플릿 은하계까지 남은 시간 : 1주
미시Cpp
회차 : 4회차 시간 : 11시 30분 ~ 장소 : 6층 학회실
참가원
| 멘토 | 장용운 | 미시행 |
| 멘티 | 유재범 | 미시행 |
| 신형철 | 미시행 |
이번에 배울 것
- 연산자 오버로딩
○ 종류 ○ 선언과 정의 ○ 비 메서드적 연산자 오버로딩
- std::cout, std::cin, std::endl
- []연산자 오버로딩
- 대입 연산자 오버로딩
- ★(C++11)RValue reference
- ★(C++11)Move semantics
○ Move constructor ○ Move assignment operator
실습
- 체스 프로그램 클래스 디자인
○ 기능 명세 ○ 구조 디자인 ○ 프로토타입
스터디 진행
내용
- Feature
- Chess Rule
- 2-Player-Played
- Console UI
- FIle I/O
- 연산자 오버로딩
class A{
friend A& operator=; //4번
A& operator=(int n){
}//1번
A& operator=(class A&){
}//2번
};
A& operator=(int n, class A&){
}//3번
- 1번
- 2항 연산의 뒷부분 피 연산자가 숫자일 경우
- 2번
- 2항 연산의 뒷부분 피 연산자가 자기 자신(같은 형식)일 경우
- 3번
- '3+a'와 같은 앞부분 피 연산자가 객체일 경우, 1번 식을 선언 함으로써 사용
- 4번
- friend를 이용해 3번의 전역 함수를 friend로 선언해 줘야 사용 가능
- 생성자(소멸자), 복사 생성자, 대입 연산자 오버라이딩 메소드는 C++가 만드므로 항상 조심해줘야 하며 항상 확인해야 한다.
- ~~스테이크를 시켰더니 스테이크 제료가 나왔다. 근데 왠지 레스토랑에서 제공한 소스가 상한 것 같아 열어보니 상해 있다...랄까~~
- Rvalue
- Lvalue : 값을 대입하고 쓰는 데 의미가 있어야 한다
- Rvalue : 이름이 없다. 고로 의미가 없다.
- 대입연산자 좌측에 절대 올 수 없는 값
- TO(Temporary Object, 임시 객체) 또한 Rvalue
- 이름이 없는 객체. 나중에 알려주세요
- 객체를 return by value 할 때, 객체를 생성하지 않고 클래스를 바로 인스턴스화 할 때 생성
- Rvalue Reference
- 아 쓰기 힘들어
- Move semantics
- 너도....
- 아마 임시 객체의 copy는 deep copy를 할 필요는 없는 것 같다...
- 다만 임시 객체의 할당된 공간을 그냥 없애자...
코드
잡담
*