쑤쑤_CS 기록장
[TIPS 20기]9. C++언어 두번째 강좌 정리 본문
[ 강의 정리 ]
지난 시간 첫 C++언어 강좌 수업을 했는데요, (이전 글 참조)
2019년 1월 28일 두번째 C++언어 강좌 수업 정리를 시작합니다 : )
* 접근제한자
: 프로그래머의 style을 잡아주기 위함(기계어 코드는 동일함). 프로그래머가 함수를 만들도록 유도 -> 변화를 잘 대처할 수 있도록
- private
외부에서 이 멤버에 접근을 못하게 함 ex)data.age 불가. SetAge()함수 이용
public 영역에서 값을 쓰는 방법으로, 변수를 직접 쓰지 않고 함수를 쓰게 함 (프로그래머가 함수를 쓰는 style로)
- public
* 클래스의 구조
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 32 33 34 35 36 37 38 39 40 41 | class Student { private: int age; public: Student() //생성자 { age=0; } ~Student() //파괴자 { } void SetAge(int a) { age = a; } int GetAge() { return age; } } | cs |
- 데이터 멤버는 private로!
* C++언어
- 자판기 만들기
- 클래스를 만드는 사람 / 쓰는 사람으로 역할이 나뉨 (생산자, 소비자 관계)
- 개발자가 잘 못하는걸(자동으로 초기화) 컴파일러가 가능하게 하도록
--> (객체)생성자 : 객체를 자동 초기화 해주는 개념
객체를 만들어 쓰기 <- 초기화 제대로 <- 설명 필요 <- 자동으로 컴파일러가 <- 클래스와 똑같은 이름의 함수 : 초기화 하는 함수 로 정함
- 생성자 : 객체가 생성될 때 자동으로 등장 (생성자 여러개 가능)
- 파괴자 : 객체가 사라질 때 자동으로 등장 (함수가 끝나는 위치에 컴파일러가 넣어줌) (없거나 1개만 가능)
+) 문자열이 없다는 표현 (if문 없애도록)
//생성자 코드
mp_string = (char *)malloc(1);
*mp_string = 0;
* 오버로딩
- 의미가 넘침. 한 단어가 여러개의 뜻을 가지는 과적 상태.
- 만들어진 이유 ? 개발자가 이름짓는데 갖는 스트레스를 줄여주기 위함
- 이름 같음. 인자의 개수 다름
* 상속 (파생 클래스)
- 변화가 생겼을 때 함수 / 클래스 를 따라다니며 모두 바꾸면 안됨
- 클래스에 다른 기능(Test)을 추가할 때 코드 중복을 피하기 위해 : '컴파일러야 여기에다가 앞의class A 코드 넣어줘'
class AExt : public A{
void Test(){
}
}
중복 코드를 적지 않고 상속 이용
자식은 부모보다 크기가 크거나 작다
- private(자식과공유 x), protected(자식과공유 o & 외부와공유 x), public(모두와 공유 o) //private은 단일클래스일 때만 의미있으므로, protected를 더 많이 사용한다(상속의 의미)
* 오버라이딩
- 교체 시킴
- 복사 시 함수 이름이 같으면 에러가 나므로, B :: C의 형태로 나타낸다. 부모 B에 속해있는 C함수 라는 의미이다.
- C함수는 자기 우선으로, 부모와 다른 교체된 내용인 자신이 사용 됨
- 자식이 매개변수까지 부모와 같음
+) 부모꺼와 중복 코드 -> A::C 이용(부모A의 함수C)
- 이름 같음. 인자 같음. 상속 으로 인해 존재.
+) 소속이 다르거나(A::C, B::C) 없으면(클래스에 속하지 않음, ::C) 다른것으로 취급(모두 다른 C이다)
+) 어디 안에 소속되어있다는 뜻의 '스코프 연산자 :: '
++) namespace NAME
{
}
//이름 같아서 문제 생기는 걸 방지하기 위해 namespace를 이용하여 구분 가능 -> namespace ::
usingnamespace std // namespace::를 계속 써야하는 불편함을 해결해줌
class도 namespace의 일종이다
코드를 보여주고 싶지 않을 때, class 안에 넣지 않을 때 등도 이용 가능
-> * 문제 해결법, 프로그램이 어려워 지는 이유?
1) [P]데이터에 변화가 왔을 때 대처 <- 함수 ([S]접근제한자)
2) 중복 코드 - 함수, [P]클래스의 중복 <- [S]상속
c++ 컴파일러
* data type 하나로 모두 유지 가능하게 만드는 기술 : '다형성'
(다음 수업 때)
https://m.blog.naver.com/PostView.nhn?blogId=tipsware&logNo=221329908922&referrerCode=0&searchKeyword=Mfc
<mfc 이야기>
#Tips강좌 #Tips프로그래밍강좌 #김성엽 #지식나눔강좌 #tipssoft
'IT 지식 기록 > TIPS - C 언어 수업 정리' 카테고리의 다른 글
[TIPS 20기]11. Windows 프로그래밍 첫번째 강좌 정리 (0) | 2019.05.30 |
---|---|
[TIPS 20기]10. C++언어 세번째 강좌 정리 (0) | 2019.05.30 |
Windows 추가 내용 정리 (0) | 2019.02.14 |
[TIPS 20기]11. Windows 첫번째 강좌 정리 (0) | 2019.02.14 |
[TIPS 20기]2. C언어 두번째 강좌 정리 (0) | 2019.02.13 |