객체지향프로그래밍 5주차

2021. 10. 1. 17:04·학교수업
반응형

C++ 문자열

1. C 스트링

2. C++ string 클래스의 객체 (더 선호)

 

인자 전달 방식

1. 값에 의한 호출 : call by value

- 호출 코드에 값을 넘김

2. 주소에 의한 호출 : call by address

- 호출 코드에 명시적으로 주소를 넘김

- 매개 변수는 포인터 타입

 

함수 호출로 객체 전달 : 값에 의한 호출로 객체 전달 (생성자, 소멸자의 비대칭 실행)

- 매개 변수 객체의 생성자 호출 X => 값을 전달하는데 생성자가 호출되면 기본 생성자 호출 => 값이 달라짐

- 매개 변수 객체의 소멸자는 호출함

 

함수 호출로 객체 전달 : 주소에 의한 호출

- 값이 아닌 주소값을 전달

 

객체 치환

- 동일한 클래스 타입 객체끼리는 치환 가능

- 모든 데이터가 비트 단위로 복사

ex)

Circle c1(5);

Circle c2(30);

c1=c2; <-c2의 객체를 c1객체에 비트 단위 복사

 

객체 리턴

ex)

Circle get()
{
Circle temp(30);

return temp;

}

 

참조 변수 선언

- 참조자(&)의 도입

- 이미 존재하는 변수에 다른 이름(별명) 선언

 

참조에 의한 호출

- 참조를 가장 많이 쓰는 사례

- call by reference

- 함수 형식

1. 함수 매개 변수를 참조 타입으로 선언

->참조 매개 변수라 부름, 변수 이름만 생기며 공간 생성X, 실인자 변수 공간 공유

=>즉, 참조 매개 변수의 조작은 실인자 변수 조작

 

참조 리턴

- C언어에서는 함수는 반드시 값만 리턴

1. 기본 타입 값 ex)int, char, double, ..

2. 포인터 값

- C++에서의 함수 리턴

1. 함수 값 외 참조 리턴 가능

=>참조 리턴 : 변수 등과 같이 현존하는 공간에 대한 참조 리턴(변수 값 리턴X)

ex)

char& find()

{
return c;

}

 

C++의 얕은 복사, 깊은 복사

1) 얕은 복사 : shallow copy

- 객체 복사 시, 객체 멤버를 1:1로 복사

- 멤버 변수에 동적 메모리가 할당 된 경우 => 할당 받은 메모리 공유

2) 깊은 복사 : deep copy

- 객체 복사 시, 객체 멤버를 1:1로 복사

- 멤버 변수에 동적 메모리가 할당 된 경우 => 따로 메로리 할당 후, 원본 동적 메모리 내용 복사

=> 완전한 형태의 복사

 

복사 생성자 : copy constructor

- 객체 복사 생성시 호출되는 특별한 생성자

특징

- 한 클래스에 오직 한 개만 선언 가능

- 복사 생성자는 보통 생성자, 클래스 내 중복 선언 가능

- 모양  : 클래스에 대한 참조 매개 변수를 가지는 독특한 생성자

default 복사 생성자

- 복사 생성자 선언되어 있지 않는 클래스

반응형
저작자표시 (새창열림)

'학교수업' 카테고리의 다른 글

사물인터넷의이해 5주차  (0) 2021.10.05
웹개발기초 5주차  (0) 2021.10.01
가상현실프로그래밍 4주차  (0) 2021.09.30
정보보호개론 4주차 (3주차 추가내용)  (0) 2021.09.30
임베디드기초 4주차  (0) 2021.09.29
'학교수업' 카테고리의 다른 글
  • 사물인터넷의이해 5주차
  • 웹개발기초 5주차
  • 가상현실프로그래밍 4주차
  • 정보보호개론 4주차 (3주차 추가내용)
숯불돼지왕갈비
숯불돼지왕갈비
  • 숯불돼지왕갈비
    게임 개발 공부기
    숯불돼지왕갈비
  • 전체
    오늘
    어제
    • 분류 전체보기 (302)
      • 학교수업 (165)
      • 취업강의 (6)
      • C++ (49)
        • 코딩 테스트 (4)
      • Unreal Engine 5 (25)
        • MMORPG 개발 (25)
      • Unreal Engine 4 (44)
        • Omak Project (3)
        • Unreal Engine 4 개발일지 (9)
        • Unreal Engine 4 (32)
      • Unity (1)
        • 개발 일지 (1)
      • 수학 (3)
        • 소프트웨어 공학용 수학 (3)
      • DirectX 11 (4)
      • 게임 디자인 패턴 (2)
      • 포트폴리오 (1)
      • 자격증 (1)
        • 정보처리기사 (0)
        • SQLD (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
숯불돼지왕갈비
객체지향프로그래밍 5주차
상단으로

티스토리툴바