[CPP] swing 1-1 스터디 3주차

과제1. 문서화

그림 1
그림 2

-포인터 변수의 정의와 선언

포인터 변수: 메모리 주소에 이름 지정

변수: 메모리 공간에 이름 지정

 

그림 1은 분리형 포인터 선언: po라는 포인터 변수는 add라는 변수의 주소값

그림 2은 통합형 포인터 선언: po2라는 포인터 변수는 add2라는 변수의 주소값

 

-포인터 배열

po3라는 포인터 변수는 add3[0]라는 변수의 주소값

*(po3+1)=add3[1]

*(po3+2)=add3[2]

-참조의 정의와 선언

참조: 별명, 메모리 변화 없음

 

 

 

-포인터/참조 비교

  포인터변수 참조
초기화 메모리 주소를 새로 정의해주는 것이기 때문에 메모리 공간 할당 별명이라서 별도의 메모리 할당 X
대상 변경 가능 불가능
접근 배열에서 +1하면 다음 인덱스로 이동하는 등 비교적 이동 자유로움 이동/접근 불가능=더 안전하다!

 

 

-함수 호출

함수 호출: 매개 변수에 인자를 넣어 함수를 실행함. 함수(인자)꼴이다.

함수의 인자 전달 방식 1:Call By Value

e=a, f=b가 된다. e, f 값은 호출된 함수 실행이 끝나고 변하지 않는다.

함수의 인자 전달 방식 2:Call By Address

&e=*a, &f=*b가 된다. e, f 값에 포인터 변수가 지정됐기 때문에 호출된 함수 실행이 끝나고 e,f값이 변한다.

함수의 인자 전달 방식 3:Call By Reference

e=&a, f=&b가 된다. e,f는 a,b 주소의 변수값이 되므로 호출된 함수 실행이 끝나고 e,f 값이 변한다.

 

 

-인라인 함수

C++ 실행 속도 개선을 위함

클래스 선언을 통한 멤버함수 반복>처리시간, 메모리, CPU 자원 낭비(오버헤드 현상)

컴파일 과정에서 Inline 함수 부분이 메인 함수에 삽입->메인함수에서 실행

일반 함수는 메인함수>호출함수>메인함수라면,

인라인 함수는 메인함수로 끌고와서 메인함수에서만 모든 과정 실행

 

선언 방법

inline [자료형] [함수이름]([매개변수])

 

 

 

 

과제2. 계좌 별 자산 관리 서비스 프로그램

https://github.com/nabi2320/SWING_cpp/blob/main/cpp3_2