6주차 요약

김서영·2021년 10월 11일
0

클래스 멤버의 접근권한

전용(Private)

전용은 해당 클래스 내부에서만 접근이 가능하다.
C++의 기본속성은 private이다.
멤버 변수는 주로 private로 사용한다.

범용(Public)

어디에서나 접근할 수 있다.
멤버 함수는 멤버 변수의 접근을 위해 주로 범용으로 사용한다.

보호(Protected)

자신과 자식 클래스만 접근할 수 있다.
외부 입장에서는 private와 protected 모두 접근할 수 없기 때문에 같다고 본다.

Void

리턴값이나 매개변수가 없을 때 사용한다.

  • 함수의 괄호 안에 쓰이는 void는 매개변수가 없을 때 사용하는 void이며, 생략할 수 있다.
  • 함수 앞에 void가 쓰일 때는 리턴값이 없다는 것을 의미하며, 이 경우에는 생략할 수 없다.

함수 정의

함수를 만드는 것을 함수 정의라고 한다.

함수 호출

argument가 없을 때는 빈칸(void)을 사용한다.

함수 선언

함수의 사용법을 의미하며, 컴파일러에게 함수의 정보를 준다.
함수 뒤에 세미콜론(;)을 붙여서 함수를 선언한다.
ex.void display(void);

함수를 사용할 때

함수를 호출한 값은 직접 보여주기보단 변수에 넣어 사용하는 것이 좋다.
함수를 main()함수 뒤에 정의할 때는 main()함수 앞에 함수를 선언해야 한다.
사용하지 않을 시 오류가 발생한다.

멤버 함수의 선언과 정의

멤버 함수는 클래스 안에서 정의하는 방법과 클래스 밖에서 정의하는 방법이 있다.
클래스 안에서 정의하는 경우는 잘 사용하지 않는다.
멤버 함수가 비대해질 경우, 클래스의 몸체도 커지기 때문에 수정이 어렵기 때문이다.

  • 멤버함수를 클래스 안에서 정의하는 경우
class Cat {
private:
	int age;
public:
	int getAge()
	{
		return age;
	}
};
  • 멤버함수를 클래스 밖에서 정의하는 경우
class Cat {
private:
	int age;
public:
	int getAge();
};
int Cat::getAge()
{
	return age;
}

범위 지정 연산자(scope resolution operator) '::'

앞에 namespace가 있을 때 ‘::’은 어느 클래스에 포함되어 있는지 알려주는 역할을 가진다.
앞에 아무것도 없으면 ‘::’은 함수 안에서 전역변수로 접근하고 싶을 때 사용하는 역할이다.

Using과 Namespace

namespace는 이름의 충돌하는 것을 막기 위해 사용된다.
모든 식별자(변수, 함수 등의 이름)가 유일하도록 보장하는 코드 영역을 정의해 충돌을 막는다.

Using 지시문

컴파일러가 인식하지 못하는 이름이나 네임스페이스를 알 수 없는 것을 만나면 std 스페이스에서 찾도록 하는 지시문이다.
함수의 이름이 cout, cin등과 같다면 using 지시문을 사용해도 찾을 수 없다는 단점이 있다.

Inline함수

컴파일러에 의해 처리된다.
함수 코드 블록의 복사본인 기계어 코드가 직접 삽입된다.
함수를 호출하고 값을 반환하는데 드는 시간상의 지체(overhead)를 줄일 수 있다.
inline 함수를 반복하다 보면 실행 파일 사이즈가 커진다는 단점이 있다.
Visual C++에서는 한/두 줄의 짧은 실행문을 갖는 함수를 inline 함수로 취급한다.

자동 Inline함수

멤버 함수가 클래스 내부에서 정의되면 자동으로 inline 함수가 된다.

객체의 멤버 호출

직접 참조연산자는 ‘ . ’을 사용하고, 간접참조연산자는 ‘->’을 사용한다.


C++프로그래밍(21-2학기)한성현교수 강의 내용 변형 및 요약

0개의 댓글