C++

7주차 강의 내용

wlsn 2024. 10. 15. 13:47

class에서는 private은 디폴트값으로 생략해도 된다.

 

public으로 바꾸면 어디서나 접근할 수 있다.

 

protected는 private이지만 접근할 수 있게 만든다.

 

하이라이트된 부분이 각 언어의 디폴트 속성이다.

자료를 외부로부터 은폐하여 잘못된 조작이나 사용에서 보호받기 위한 방법을 캡슐화라고 한다.

 

모두에게 공개하고싶을땐 public, private은 디폴트값, protected는 private에서 상속받아 생성된 클래스의 멤버함수만 접근 가능.

 

getAge와 setAge 함수를 만들어 main부분에서 가져온 모습.

 

void setAge(int a)부분에 a는 parameter

 

coco.setAge(3);부분에서 3은 argument

 

리턴값이 없다면 함수는 void를 써줘야되고 parameter는 생략가능.

 

함수 정의,호출,선언

 

멤버함수의 정의는 이런 식으로 바꿀 수 있다.

위 사진의 2번 방식으로 작성한 것.

 

class diagram에서 +-는 -부분은 private, +는 public을 의미한다.

위는 class명

중간은 변수

아래는 함수로 작성한다.

 

Dog

--------------

-age : int

--------------

+getAge()

+setAge()

 

로 작성할 수 있다.

 

getAge와 setAge를 밖으로 꺼냈을 때는 소속을 정의 해줘야된다. 클래스명:: 이 소속을 의미한다.

 

:: 은 범위 지정 연산자로써 지역변수가 아닌 전역변수를 가져오는 기능을 한다.

위 사진은 지역변수 a = 10을 a=a+10으로 계산했을때 20이 나오지만

범위 지정 연산자를 사용 했을때에는 ::a=::a+3은 6이 나온다. ::a는 전역변수에서 3을 의미하기 때문이다.

 

위 사진과 같이 using namespace는 잘 쓰이지 않는다. 쓴다면 using std::cout;과 using std::endl;이 더 나을 것이다.

 

모든 식별자가 유일하도록 보장하는 코드영역을 정의함.

모든게 std가 되면 혼란이 올 수 있어 using namespace std;는 잘 쓰이지 않는다.

 

class diagram

Integer

-------------

-val : int

-------------

+getVal() : int

+setVal(ii : int) : void

 

매크로 함수에서는 ((i) + (j))와 같이 괄호를 많이 쳐주면 된다.

멤버 함수를 클래스 안에 정의하면 자동으로 인라인 함수가 된다.

 

직접참조연산자는 . 을 쓰고 간접참조연산자는 -> 를 쓴다.

 

9 ~ 13까지는 자동 inline 함수가 된다.

이런 식으로 변경도 가능하다.

 

class diagram

Man

--------------------------------

-int : age

-double : weight

--------------------------------

+getAge();

+setAge(int a);

+getWeight();

+setWeight(double w);

+smile();

+agePlus();

'C++' 카테고리의 다른 글

9주차 강의내용  (0) 2024.10.29
9주차 예습과제  (0) 2024.10.29
C++ 7주차 예습과제  (0) 2024.10.14
C++ 6주차 강의 내용  (0) 2024.10.08
C++ 6주차 예습과제  (0) 2024.10.07