시스템 시간 변경시 time(&NULL)값이 변경이 될까?
Programing/C / C++ 2014. 7. 3. 18:18 |'Programing > C / C++' 카테고리의 다른 글
오버로드, 오버라이드, 인터페이스 차이점 (0) | 2012.05.21 |
---|---|
코드, 스택, 힙, 데이터 메모리 영역 (0) | 2012.05.21 |
오버로드, 오버라이드, 인터페이스 차이점 (0) | 2012.05.21 |
---|---|
코드, 스택, 힙, 데이터 메모리 영역 (0) | 2012.05.21 |
# 일자: 2009-12-05 일곱째날
# 강좌: C# Programing
# 주제: 상속 기법(Overload, Override, Interface)
<Lecture>
1. OOP 구조
객체1 - 객체2 - 객체3
☞ 각 객체는 구별, 존재, 고유역할
2. OOP 작성순서
0) 클래스(분류,구분) 작성
1) 객체 형성
2) 객체간 상호작용 시킴
3. OOP을 위한 선수학습
1) 클래스 작성법
(1) 기본적
(2) 테크닉
. 상속: overloading, overriding, interface
2) 객체 생성법3) 객체간의 상호작용 시키는 방법
4. Over Load ()
1) 의미
- 과적, 많이 실려 있음, 같은 것이 많음
- 메소드 관련
2) 대상
- 상속메소드
- 단일 Class 내에서
3) 단일 Class 내에 F라는 이름의 메소드 들이 Overload 됨
- 메소드 관련(메소드 명이 같고 인자의 갯수와 배치가 다름)
- Class A
{
public void F() {}
public void F(int a) {}
public void F(int a, string b) {}
}
4) 상속에서 F라는 이름의 메소드 들이 Overload 된 경우
- Class 부모
{
public void F() {}
}
- Class 자식:부모
{
public void F(int a) {}
}
5) 생성자에 나타만 Overload
- Class A
{
public A() {}
public A(int a) {}
public A(string a) {}
}
- MSDN reference
5. Override
1) 의미
- 교체, 대신
2) 대상
- 상속(반드시 상속에서만 발생됨)
3) 기법
(1) virtual
(2) abstract
4) virtual ☞ 부모의 행동을 자식이 바꾸는거
(1) 불완전하여 ambigous한 틀린 예
☞ 컴파일러를 헷깔리게 하죠. 부모랑 자식이랑 똑같으니까. 컴파일러에따라 에러를 주는 경
우도 있고 에러 안주고 그냥 자식 불러야 할때 부모를 부르는 경우도 있어요. (csc.exe경우)
(2) virtual을 사용한 올바른 예
☞ 컴파일러를 헷깔리지 않게 아주 잘해주었죠. virtual 과override 키워드의 힘
특히 virtual에대한 override 를 써서 재정의 할지 말지는 선택적임
(3) 실행 코드
(4) 실행 결과
- 불완전하여 ambigous한 틀린 예
- virtual을 사용한 올바른 예
☞ 세번째 결과는 참조는 부모로 선언되었으나 실제 객체는 자식이다.
부모가 아무리 자식을 가르키고 있다해도 자식객체니까 자식이 호출되죠!
(부모가 아무리 정약결혼을 시켜도 결국 자식은 사랑하는 사람과 결혼하쟎아요♡)
5) abstract ☞ 부모가 어떤 행동을 할지 구체적으론 몰라서 실제 행동은 자식이 꼭 해야하는거
(1) 의미
① abstract 메소드
- abstract 키워드로 body가 없는 메소드
② abstract 클래스
- 클래스 내부에 abstract 메소드를 1개 이상 소유한 클래스
- 부모가 abstract 메소드여서 추가로 abstract메소드 없이 부모의 abstract 메소드의 body
를 구현 안한 클래스
(2) 예제
① 추상화 클래스 선언
② 추상화 클래스를 선언받은 일반 클래스 선언
③ 추상화 클래스를 선언받은 추상화 클래스 선언
④ 추상화 클래스를 선언받은 추상화 클래스를 선언받은 일반 클래스 선언
⑤ 추상클래스의 객체생성 과 추상메소드의 호출
* 예제1번의 오류화면
⑥ 실행결과
6) Interface ☞ 부모가 어떤 행동을 할지 몽땅 구체적으론 몰르는 것만 있는 경우
(1) 의미
① interface
- class에 모두 abstract 메소드만 오는 경우 class가 아닌 interface로 대체하고
abstract 메소드를 interface 메소드로 간단히 표시함
② interface 메소드
- public이라고 안써도 무조건 public임
- abstract를 안씀
- body가 없음
(2) 예제
abstract class로 Unit class를 작성, interface로 Unit interface를 작성한 예제를 비교함
결국 Unit를 사용하는 방법을 동일함
① Unit 선언 using interface
② Unit을 상속받는 마린 class 선언
③ Unit을 상속받는 시즈탱크 class 선언
④ Unit을 사용 using Unit 배열로 마린과 시즈탱크를 객체로 생성하여 한번에 동작시킴
* 주의: 위의 Unit[]의 new는 객체 생성이 아니고 배열이니까 abstract class였어도 문제없음
- MSDN reference
6. 다중상속
1) 디자인
2) 정의
- 두개 이상의 class, abstract class, interface를 상속 받는 것
3) 조건
- Parent들은 class 나 abstract class가 최대 한개여야 함
4) 주의사항
- 완전과 불완전의 관계
- 완전과 불완전 경우에 따른 결과
<Question>
1. 오버라이딩과 오버라이드의 차이점이 있남?
[출처] [C# 7th] Overload, Override, Interface|작성자 엄댕
시스템 시간 변경시 time(&NULL)값이 변경이 될까? (0) | 2014.07.03 |
---|---|
코드, 스택, 힙, 데이터 메모리 영역 (0) | 2012.05.21 |
http://blog.naver.com/0bloodwind0/20127908176
여기에 설명 잘되어 있음!!!
시스템 시간 변경시 time(&NULL)값이 변경이 될까? (0) | 2014.07.03 |
---|---|
오버로드, 오버라이드, 인터페이스 차이점 (0) | 2012.05.21 |