| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 유튜브뮤직
- 인지신경
- c++내용정리
- c++로시작하는객체지향프로그래밍
- cpp로시작하는객체지향프로그래밍
- 클론코딩
- 인지신경과학입문
- 터틀봇
- 우분투
- pandas
- 인지신경과학
- 터틀심별
- ROS2
- c++복습
- 우분투20.04
- 실습문제
- numpy
- 터틀심원
- 뇌인지
- 터틀심
- ytmusic
- 씨쁠쁠내용정리
- 객체지향c++
- ytmusicclone
- virtualbox
- turtlesim
- 뇌과학
- 뇌인지과학
- 유튜브뮤직클론
- cpp로시작하는객체지향
- Today
- Total
one님의 블로그
[C++로 시작하는 객체지향 프로그래밍] 내용 정리 2 본문
■ 인라인 선언: 클래스 선언 안에 함수를 구현하면 자동적으로 인라인함수가 됨
- 구현파일에서 인라인 함수 정의 ⇒ 함수 헤더 앞에 inline
- 짧은 함수에서 인라인 함수로 하는 것이 좋음
■ 데이터필드 캡슐화
- private로 데이터 필드 선언
- get, set으로 접근, 변경 ⇒ set은 void로 선언 ⇒ UML에서는 함수 생략
■ 우선순위: 지역변수 > 전역변수
■ 클래스 추상화: 클래스 구현과 실행을 분리
- 구현의 세부 내용은 사용자에게 캡슐화되어 숨겨짐
■ static int number; ⇒ 객체가 정적변수값 변경하면 클래스 내 모든 객체가 영향받음 (특정 인스턴스에 대해 독립적)
- 정적 변수/함수 ⇒ 객체 생성하지 않고 접근
예) Circle::getNumber() ; 또는 circle1.getNumber() ;
■ int getNum() const; ⇒ 함수가 객체 내 데이터필드 변경 못함
- 정적함수는 상수 정의 불가
■ 클래스 ⇒ 재사용 가능한 소프트웨어 개발을 좀 더 유연하고 모듈화되게.
■ 합성(composition): 집합(aggregation)의 특별한 경우 ⇒ 집합은 has-a관계
- 소유하고있음(aggregating), 종속됨(aggregated)
- 관계에 포함된 각 클래스는 다중성(multiplicity) 지정 가능
- 다중성: 클래스의 객체가 관계에 어떻게 포함되는지 나타낸 수 /간격
- 집합과 합성의 관계: 구별하지 않고 둘 다 합성이라 함
■ 클래스 ⇒ 결합성, 일관성, 캡슐화, 명확성, 완성도, 인스턴스 대 정적
■ 포인터: 메모리 주소를 저장 (변수에 할당된 첫번쨰 바이트 주소)
- 예) int* pCount;= &count (&: 주소연산자, 변수의 주소 반환하는 단항연산자)
- 포인터로부터 값 참조: *pointer ⇒ 여기서 *는 역참조연산자(간접연산자)
- 지역포인터 ⇒ 초기화 필요(안하면 임의의 값 할당) ⇒ 보통 0으로 초기화
- 포인터 변수는 한 행에 1개씩만 선언
■ 동의어 유형(synonymous type) ⇒ (예) typedef int integer;
■ const double* p= &radius; ⇒ 포인터는 상수X, 데이터가 상수O
- double* const p = &radius; ⇒ p는 상수포인터(선언과 초기화는 동시에)
■ 괄호와 첨자가 없는 배열 변수: 배열의 시작 주소 나타냄
- list+0 : 리스트의 0번 인덱스 주소
- *(list + 1): 리스트의 1번 인덱스 값
- 우선순위: * (역참조 연산자, 애스터리스크) > +
- int * p=list; ⇒ 배열의 주소가 대입된 포인터 p임 , &연산자 사용하면 안됨
- 배열 선언 후 주소 변경 불가능
- 예) char city[2]=”DA”; ⇒ 문자열 생성(‘D’, ‘A’, ‘\0’ 포함)
'학과 공부 > C++' 카테고리의 다른 글
| [C++로 시작하는 객체지향 프로그래밍] 10장 실습-2 (0) | 2024.10.27 |
|---|---|
| [C++로 시작하는 객체지향 프로그래밍] 10장 실습-1 (0) | 2024.10.27 |
| [C++로 시작하는 객체지향 프로그래밍] 10장 실습-3 (0) | 2024.10.27 |
| [C++로 시작하는 객체지향 프로그래밍] 내용 정리 3 (0) | 2024.10.27 |
| [C++로 시작하는 객체지향 프로그래밍] 내용 정리 1 (0) | 2024.10.27 |