목적
  - 클래스의 생성자를 이해하고 동적으로 생성한다.
  - 복사 생성자에 대해 이해한다.

문제

사용자 삽입 이미지

코드




해설
  - 이번 문제에선 복사 생성자가 그다지 역할을 하지 않았습니다. 포인터를 쓰기 때문에 의무적으로 적은 거 뿐입니다. 만약 할당 연산자나 복사시 이 생성자는 서로 다른 주소로 자료를 저장하기 위해서 필수적으로 적어 두셔야 합니다.

  - new 로써 동적으로 포인터에 배열을 붙여서 접근을 할수 있습니다. 프로그램 종료시 delete 하여 자원의 낭비를 줄입니다.

  - 마찬가지로 생성시 new 로 문자열을 늘렸기 때문에 소멸시에 delete 로써 문자열을 삭제 합니다. 이는 파괴자(소멸자)에서 그 역할을 할수 있기 기술합니다.

  - CStu[0]->m_ViewProfie() 에서 -> 연산자는 (*CStu[0]).m_ViewProfile() 과 같습니다. 우선순위로 인해 괄호를 넣기가 번거로워서 -> 연산자를 추가했습니다.

참고
  - 객체지향적 프로그래밍은 C++ 기초 다음 단계이므로 차근 차근 공부 하시면 이해하기가 쉽습니다. 구조체를 먼저 이해하시고 클래스를 배우신후 private / public / protect 형 그리고 맴버함수와 변수 생성자와 파괴자 상속과 연산자, 가상함수... 이런식으로 계속 배우시면 됩니다.

  - 유사 문제 검색

Posted by 카켈




목적
  - 수학 공식에 맞는 클래스 자료형과 공식을 C++ 에 적용한다.

문제
사용자 삽입 이미지

코드



해설
  - 생성자(Constructor)는 클래스가 생성시(인스턴스화) 기본적으로 수행하는 구문입니다. 변수를 초기화 하거나 객체를 복사나 할당/생성 될때 수행되며 여러가지 역할을 합니다. 이와 반대 되는게 파괴자(Destructor) 입니다.
  - m_PrintArea() 맴버함수는 넓이를 m_PrintVol() 맴버함수는 부피를 출력합니다.
  - 각각의 맴버변수는 private 형으로 선언 되어있기 때문에 맴버 함수인 m_PrintArea, m_PrintVol, 생성자, 파괴자 외에는 접근할수 없습니다.(정보 은닉)
  - 직육면체 겉넓이는 가로*높이*2 + 가로*세로*2 + 세로*높이*2 이며 부피는 가로*세로*높이 입니다.

참고

 - 유사 문제

Posted by 카켈



목적
  - 클래스와 생성자에 대해 이해한다.

문제

사용자 삽입 이미지
 
코드

 





해설

  - 생성자는 public 형 함수로 클래스 이름으로 선언되며 인수는 괄호 안에 원하는 형식을 넣어 쓰면됩니다.
  - 위 코드에서는 생성자가 3개이며 overloading(오버로딩) 방식으로 중첩선언 되었습니다.
  - 첫번째 생성자는 생성(인스턴스화)시 인수가 하나도 없을때 이며 두번째는 순서만 있을때 세번쨰는 길이와 순서가 있을때 입니다. 이 코드에서는 세번째 생성자만 쓰여졌습니다.
  - length() 맴버 함수는 private 형으로 선언되어 있는 길이값들을 계산하여 빗변의 길이를 출력하는 함수 입니다. public 형으로 되어 있기 때문에 main() 함수 내에 맴버를 바로 호출할수 있습니다.

참고
  - http://winapi.co.kr/clec/cpp3/26-1-1.htm : 생성자
  - 유사 문제

Posted by 카켈
이전페이지 1 다음페이지