C++언어 공부/개념 공부

2024.01.29 C++ 언어 공부 4일 차

코딩입문시작 2024. 1. 29. 17:18

오늘 학원 수업에서는 [ 클래스 ] 에 대해 실습을 먼저 해보았다. 문제는 이렇게 대강 주어졌는데 내가 이해한 것과 풀이를 보고나서 정답 풀이랑은 조금 달랐다. 

[실습] 문제
무시해도 좋다.. 그냥 이렇게 짰는데 정답을 한번 확인해보자!

※ 기본 생성자를 통해 입력을 받기 전, 안에 들어갈 값이 무엇인지 모르기 때문에 공간만 할당해준 것이고 그 아래에 초기 생성자를 통해 입력받은 값을 넣어주기! (동적할당 개념과는 다른 개념이다.)   >>>   추가적 공부가 필요함 ㅠ__ㅠ

 

참고 자료 : [C++ 기본 공부정리] 14-4. OOP - 생성자(constructor) (tistory.com)

 

[C++ 기본 공부정리] 14-4. OOP - 생성자(constructor)

공부 내용을 정리하는 목적 이므로 참고용으로만 읽어 주시기 바랍니다. 틀린 부분에 대한 지적은 감사합니다. 1. 생성자(constructor) 클래스를 정의한 후 클래스 객체를 생성하게 되면 메모리에

min-zero.tistory.com

 

오버로딩

  • 메소드(함수)의 이름은 동일하지만 매개변수의 타입과 순서, 갯수를 구분으로 삼아 여러 개를 만들 수 있는 성질

 

코드를 이렇게 디폴트 매개변수를 줌으로써 짤수도 있다!

 

 

복사 생성자

  • 이미 만들어진 객체와 똑같은 객체를 생성할 때 호출되는 생성자이다.
  • 복사 생성자를 생략하면 기본생성자 처럼 컴파일러가 알아서 만들어준다. 


얕은 복사

  • 얕은 복사는 객체가 가진 멤버들의 값을 새로운 객체로 복사하는데, 만약 복사 대상 객체가 참조타입의 멤버를 가지고 있다면 참조값만 복사가 된다.
  • 그렇기에 이 참조타입의 값이 변경될 경우 해당 객체로 복사한 모든 객체들의 값이 전부 바뀌는 문제가 발생한다.

얕은 복사 설명(1)
얕은 복사 설명(2)

 

 

마지막 printObj(dog) 쪽 부분에서 이해하기가 어려웠다 ...


클래스 

  • 클래스를 하나의 타입 (자료형) 으로 봐야한다.
  • int, double, float -> 기본 자료형
    string, bool, 우리가 만들어준 클래스 모두 -> 참조 자료형