Coding/C++

(New) C++언어 공부 0009

  • -
728x90
반응형

1. 프렌드 함수

    • 클래스의 멤버 함수가 아닌 외부 함수

        • 전역 함수

        • 다른 클래스의 멤버 함수

    • friend 키워드로 클래스 내에 선언된 함수

        • 클래스의 모든 멤버를 접근할 수 있는 권한 부여

        • 함수의 정의는 외부에서 수행

    • 프렌드 선언의 필요성 : cout << …, 2 + person,

        • 클래스의 멤버로 선언하기에는 무리가 있고, 클래스의 모든 멤버를 자유롭게 접근할 수 있는 일부 외부 함수 작성 시

 

1-1. 프렌드 함수 예

 

 

 

 

2. 연산자 중복

    • 함수를 만들어 사용하는 것 보다, 연산자를 사용하여 표현하는 것이 이해하기 쉬움

    • 연산자들을 클래스 객체(= 내가 정의한 자료형)에 대해서도 적용하는 것

        • 컴파일러가 함수처럼 변환해줌

    • C++에서는 연산자를 함수로 정의

    

    • 특징

        • C++에 본래 있는 연산자에 대해 중복 가능하지만, 모든 연산자가 중복 가능한 것은 아님

        

        • 피 연산자 타입이 다른 새로운 연산 정의

        • 반드시 클래스와 관계를 가짐

    • 주의할 점

        • 새로운 연산자를 만드는 것은 허용되지 않음

        • 내장된 자료형에 대한 연산자의 의미를 변경 불가능

        • 연산의 우선 순위나 결합법칙은 변경 안됨

        • 피연산자의 개수를 바꿀 수 없음

        • 일관성을 위하여 관련 다른 연산자도 overloading 하는 것이 좋음

        • 일반적으로 산술 연산자와 관계 연산자는 비멤버 함수로 정의

        • 할당 연산자는 멤버 함수로 정의

 

2-1. 연산자 함수

    • 이항 연산자

        • 클래스의 멤버 함수로 구현

        

        • 외부 함수로 구현하고 클래스에 프렌드 함수로 선언

        

    • 이항 연산자

        • 클래스의 멤버 함수로 구현

        

        • 외부 함수로 구현하고 클래스에 프렌드 함수로 선언

        

    • 기본 자료형과의 연산을 위한 연산자

        • 클래스의 멤버 함수로 구현

        

        • 외부 함수로 구현하고 클래스에 프렌드 함수로 선언

        

    • 외부함수로 구현하고 클래스에 프렌드 함수로 선언만 가능한 경우

        • 다른 자료형과의 연산을 위한 연산자

        

    • 클래스의 멤버 함수로만 구현이 가능한 경우

        • 대입 연산자(=), 함수 호출 연산자(()), 배열 원소 참조 연산자([]), 멤버 참조 연산자(->)

    • 컴파일러에 의한 변환

        • 클래스의 멤버 함수로 구현

        

        • 외부 함수로 구현하고 클래스에 프렌드 함수로 선언

        

 

2-2. 스트림 연산자 중복

    • 전역 함수 형태만 사용 가능

    • 연산 수행 후, stream 객체인 ostream, istream 참조자를 반환해야 함

    • >> 연산자는 잘못된 입력의 오류처리를 해주는 것이 좋음

    • 구현 방법

    

 

2-3. 대입 연산자 중복

    • 반드시 현재 객체의 reference 반환

    • 동적 할당 공간이 있으면 얕은 복사 문제를 방지하기 위해 반드시 중복 정의 해야함

    

 

2-4. 멤버함수로만 구현 가능한 연산자 중복

    • 구현 방법

    

 

3. 상속

    • 기존에 존재하는 유사한 클래스로부터 속성과 동작을 이어받고 자신이 필요한 기능을 추가하는 기법

        • 자식 클래스는 부모 클래스를 포함하는 is-a 관계

        • 여러 단계로 상속 가능

    • 장점

        • 기존 클래스의 속성과 동작을 재사용 및 일부 변경 가능

        • 이미 작성된 검증된 소프트웨어를 재사용하여 복잡한 소프트웨어를 손쉽게 개발, 유지 보수 가능

        • 코드의 중복을 줄일 수 있음

    

 

3-1. 상속의 표현

    • 상속 선언

    

        • Student 클래스는 Person 클래스의 멤버를 상속

        • StudentWorker 클래스는 Student 클래스의 멤버를 상속

            • Student가 상속받은 Person의 멤버도 함께 상속

    

 

3-2. 파생 클래스의 객체 구성

    

    

728x90
반응형

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

(New) C++언어 공부 0011  (0) 2024.08.30
(New) C++언어 공부 0010  (2) 2024.08.30
(New) C++언어 공부 0008  (0) 2024.08.29
(New) C++언어 공부 0007  (2) 2024.08.29
(New) C++언어 공부 0006  (0) 2024.08.29
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.