yEverything

#4 본문

Coding/C++

#4

yEvery 2022. 1. 24. 22:15

문제 02-2 [const 포인터와 const 참조자]

const int num=12; 포인터 변수를 선언해서 이 변수를 가리키게 해보자. 그리고 이 포인터 변수를 참조하는 참조자를 하나 선언하자. 이렇게 선언된 포인터 변수와 참조자를 이용해서 num에 저장된 값을 출력하는 예제를 완성해보자.

코드

답지 봤는데 변수이름이 똑같아서 깜짝 놀랐다.

ptr이랑 ref가 num이랑 같은 값을 가리키는 지는 *ptr이랑 *ref를 출력해보면 알 수 있다.

나는 각각의 경우가 뭘 가리키는지 알고 싶어서 다 출력해봄.

결과

결과를 보면 ptr을 출력하면 주솟값이 나오고, ref를 출력하면 ptr을 가리키도록 했으니까 같은 값이 나온다. &ref는 ref의 주솟값이 나오는 듯? 

 

문제 02-3 [구조체에 대한 new & delete 연산]

두 점의 합을 계산하는 함수를 정의하고, 임의의 두 점을 선언하여, 위 함수를 이용한 덧셈연산을 진행하는 main 함수를 정의해보자.

코드

이렇게 했는데 C언어 안 배우고 바로 C++형식으로 배워서 구조체를 잘 모르겠다ㅠㅠ

결국 답지 보고 공부함. 열혈C 사야겠음...

 

-동적할당 한 변수를 함수의 참조형 매개변수의 인자로 어떻게 전달해야 하는가?

-함수 내에 선언된 변수를 참조형으로 반환하려면 해당 변수는 어떻게 선언해야 하는가?

 

이 두 가지 질문에 답을 할 수 있어야 하는데 이걸 진짜 몰랐음.

일단 PntAdder를 이렇게 정의해야한다. ->이런 식으로 쓰는 거 답지 보고 기억남...

그리고 동적할당도 __Point로 하는 게 아니라 Point를 써서 해야함. 그래야 xpos랑 ypos를 쓸 수 있는 듯.

const니까 못 건들여서 pptr을 만들어서 p1, p2에 접근할 수 있도록 해야 하는 듯.

그리고 나서 pptr이 아니라 *pptr을 반환하도록 해야 한다.

main문

그래서 점 두 개를 저렇게 아까랑 같은 방식으로 동적할당한 다음에 숫자를 넣어줌.

PntAdder를 통해 반환할 값을 Point &이름 형식으로 받아줌. PntAdder가 Point& 의 형식이라서 이런 식으로 받아야 하는 듯. 그럼 저 두 가지 질문에 대한 답을 할 수 있음.

 

문제 02-4 [C++의 표준함수 호출]

문제1 다음 표준함수를 호출하는 예제를 만들되, C++의 헤더를 선언해서 만들어보자.

코드

이건 그래도 조금 기억나서 혼자 해봄. 근데 저 strcmp를 쓰는 게 기억이 안 나서 답지 보고 if문으로 바꿔서 함. 저 값이 0이면 두 문자열이 같은 거고 1이 다른 거랬는데 0이 false고 1이 true여서 반댄 줄 알았는데 아니었음. strcmp를 다시 한 번 봐야겠음...

결과

결과는 이렇게 나옴.

 

문제2 다음 세 함수를 이용해서 0이상 100미만의 난수를 총 5개 생성하는 예제를 만들되, C++의 헤더를 선언해서 작성해보자.

코드

이것도 역시 답지를 보고 함. srand, time, rand 쓸 줄 모름. 3개 쓰는 거 알고나서 다시 한 번 해봐야 겠음ㅠㅠ

C++의 헤더로 선언하는 것만 할 줄 알았음...

결과

결과는 이렇게 나오는데 저 함수들이 어떻게 쓰이는 지를 알아야 이 결과가 맞게 나온지를 알기 때문에 얘도 다시 봐야겠음...

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

#6  (0) 2022.01.26
#5  (0) 2022.01.25
#3  (0) 2022.01.23
#2  (0) 2022.01.22
#1  (0) 2022.01.21