[열혈 C++] 문제 02-3 풀이
Study Code/[Basic] C++2024. 5. 2. 00:00[열혈 C++] 문제 02-3 풀이

구조체에 대한 복습을 겸할 수 있는 문제를 제시하겠다. 2차원 평면상에서의 좌표를 표현할 수 있는 구조체를 다음과 같이 정의하였다.typedef struct __Point{int xpos;int ypos;} Point;위의 구조체를 기반으로 두 점의 합을 계산하는 함수를 다음의 형태로 정의하고(덧셈결과는 함수의 반환을 통해서 얻게 한다.)Point& PntAdder(const Point &p1, const Point &p2);임의의 두 점을 선언하여, 위 함수를 이용한 덧셈연산을 진행하는 main 함수를 정의해보자.단, 구조에 Point 관련 변수의 선언은 무조건 new 연산자를 이용해서 진행해야 하며, 할당된 메모리 공간의 소멸도 철저해야한다.참고로 이 문제의 해결을 위해서는 다음 두 질문에 답을 할 ..

[열혈 C++] 문제 02-2 풀이
Study Code/[Basic] C++2024. 5. 1. 23:02[열혈 C++] 문제 02-2 풀이

const 포인터에 대한 복습을 겸할 수 있는 문제를 제시하겠다.다음의 상수선언을 보자.const int num=12;포인터 변수를 선언해서 위 변수를 가리키게 해보자. 그리고 이 포인터 변수를 참조하는 참조자를 하나 선언하자.마지막으로 이렇게 선언된 포인터 변수와 참조자를 이용해서 num에 저장된 값을 출력하는 예제를 완성해보자.   [풀이]#include int main(){ const int num = 12; //포인터 변수를 선언해서 위 변수를 가리키게 해보자. const int *ptr = # //이 포인터 변수를 참조하는 참조자를 하나 선언하자. const int *(&ref) = ptr; //이렇게 선언된 포인터 변수와 참조자를 이용해서 num에 저장된 값을 출력 std::cout

[열혈 C++] 문제 02-1 문제3 풀이
Study Code/[Basic] C++2024. 5. 1. 21:33[열혈 C++] 문제 02-1 문제3 풀이

int main(void){ int num1 = 5; int *ptr1 = &num1; int num2 = 10; int *ptr2 = &num2;} 위 코드를 보면 ptr1과 ptr2가 각각 num1과 num2를 가리키고 있다. 이 때 ptr1과 ptr2를 대상으로 다음과 같이 함수를 호출하고 나면, SwapPointer(ptr1, ptr2); ptr1과 ptr2가 가리키는 대상이 서로 바뀌도록 SwapPointer 함수를 정의해보자.  [풀이]#include using namespace std;// SwapPointer 함수void SwapPointer(int *(&ptr1), int *(&ptr2)){ int* tmp = ptr1; ptr1 = ptr2; ptr2 = tmp;}int main(voi..

[열혈 C++] 문제 02-1 문제2 풀이
Study Code/[Basic] C++2024. 5. 1. 21:27[열혈 C++] 문제 02-1 문제2 풀이

앞서 소개한 예제 RefSwap.cpp의 SwapByRef2 함수를 다음의 형태로 호출하면 컴파일 에러가 발생한다. SwapByRef(23, 45); 컴파일 에러가 발생하는 이유가 무엇인지 설명해보자.// RefSwap.cpp#include using namespace std;void SwapByRef2(int& ref1, int& ref2){ int temp = ref1; ref1 = ref2; ref2 = temp;}int main(void){ int val1 = 10; int val2 = 20; SwapByRef2(val1, val2); cout   [풀이]참조자는 상수를 참조할 수 없으므로 반드시 변수를 통해 값을 받아야한다.

[열혈 C++] 문제 02-1 문제1 풀이
Study Code/[Basic] C++2024. 5. 1. 21:25[열혈 C++] 문제 02-1 문제1 풀이

참조자를 이용해서 다음 요구사항에 부합하는 함수를 각각 정의하여라. - 인자로 전달된 int형 변수의 값을 1씩 증가시키는 함수 - 인자로 전달된 int형 변수의 부호를 바꾸는 함수 그리고 위의 각 함수를 호출하여 그 결과를 확인하는 main 함수까지 작성하여라.  [풀이]#include using namespace std;void incrementFunc(int &num){ num++;}void changeSign(int& num){ num *= -1;}int main(){ int num = 10; incrementFunc(num); cout

728x90
반응형
image