ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 용어정리
    @ 16. 1 ~ 17. 1/면접관련 2016. 12. 6. 21:13

    인라인 : 함수의 몸체부분이 함수호출 문장을 완전히 대체했을때 인라화가되었다고 한다. C의 매크로함수와 같다.


    함수의 매개변수로 선언된 참조자는 지역변수와 동일한 성격을 갖는다.

    즉, 함수의 반환이나 함수 호출이 종료되면 참조가 매개변수는 사라진다.

    반환형이 참조형인 경우, 반환 값을 무엇으로 저장하느냐에 따라서 그 결과에 차이가 있으므로 적절한 선택해야함.

    int& 테스트(int& test);

    일반변수일경우 = 테스트(num1);

    참조변수일경우 = 테스트(num1);

    두 가지 방식은 차이가 있다. 일반 변수면 num1과 일반변수는 별개다.

    그러나 참조형일때 num1과 참조변수는 같다

    또 반환값이 값일때는 절대로 참조형 변수로 얻을 수 없다. 왜냐면 반환 값은 상수나 다름없기 때문에..


    또한 함수내에서 선언된 지역변수를 참조형의 반환값으로 반환하고 그걸 참조형으로 받으면..안된다..

    int& 함수테스트(int n)

    {

    int num = 20;

    num += n;

    return num;

    }

    이런 함수일때 참조형변수 = 함수테스트(~~~)



    OOP의 특징을 얘기할 때 많은 이들이 OOP의 세 가지 기둥을 얘기합니다. OOP의 세 가지 기둥에는 캡슐화와 상속, 다형성이 있습니


    이 중에 캡슐화는 여러 개의 멤버를 하나의 형식으로 묶어서 정의하는 것을 말합니다. 예를 들어, 학생 관리 프로그램에서 학생 번호, 학생 이름, 학생이 공부하다, 학생이 잠자다 등을 학생이라는 형식으로 정의하는 것을 들 수 있습니다.


    1. 추상화(abstraction)
       
    객체들의 공통적인 특징을 뽑아내는 것이다. 즉, 우리가 구현하는 객체들이 가진 공통적인 데이터와 기능을 도출해 내는 것을 의미한다. 즉, "공통의 속성이나 기능을 묶어 이름을 붙이는 것"
    -> 클래스를 정의하는 과정이 추상화 과정이라고 할 수 있다.




    2. 캡슐화(encapsulation)

    데이터 구조와 데이터를 다루는 방법을 결합시켜 묶는 것을 말한다. 특정 객체가 독립적으로 역할을 제대로 수행가기 위해 필요한 데이터와 기능을 하나로 묶어 관리한다. 객체가 맡은 역할을 수행하기 위한 하나의 목적을 위해 데이터와 기능을 묶는 것이다.
    다른 의미로도 쓰이는데 즉, 데이터는 은닉하고 그 데이터를 접근하는 기능을 밖으로 노출한다는 의미를 나타낼 때 캡슐화라는 용어를 쓴다. 
    ->데이터를 기능이라는 캡슐로 보호한다는 것이다.




    3. 상속성(inheritance)

    객체지향의 꽃이다. 상속이란 상위개념의 특징을 하위 개념이 물려받는 특징을 말한다. 하나의 클래스가 가지고 있는 특징들을 그대로 다른 클래스가 돌려주고자 할 때 상속성의 특징을 사용한다.




    4. 다형성(polymorphism)

    약간 다른 방법으로 일을 하는 함수의 동일한 이름으로 호출해 주는 것을 말한다. 예를 들어 홍길동과 김철수가 있다고 하자. 그런데 선생님이 길동이를 바라 보면서 칠판을 지우라고 했다. 그럼 길동 나름의 방법대로 칠판을 지울것이다. 그리고 선생님은 다시 철수에게 칠판을 지우라고 명령을 했다. 철수도 철수의 방식대로 칠판을 지울것이다. 이처럼 표현은 같지만 칠판을 지우는 행위는 다르게 나타난다. 이것이 다형성이다. 같은 하나의 명령이 다른 결과로 나타나는 것을 말한다.




    C++ STL이란??

    STL : 표준 템플릿 라이브러리(Standard Template Library)의 약자로서 
    많은 프로그래머들이 공통적으로 사용하는 자료 구조와 알고리즘에 대한 클래스.


    컨테이너(container) (스마트 배열)
    - 자료를 저장하는 구조이다.
    - 벡터, 리스트, 맵, 집합, 큐, 스택과 같은 다양한 자료 구조들이 제공된다.

    반복자(iterator) (스마트 포인터)
    : 컨테이너 안에 저장된 요소들을 순차적으로 처리하기 위한 컴포넌트
    - 반복자를 사용하는 이유는 "일관성" 때문이다. (컨테이너 종류와 상관없이 다 순차적으로 접근가능)
    알고리즘(algorithm)
    : 정렬이나 탐색과 같은 다양한 알고리즘을 구현

    STL의 장점

    • STL은 전문가가 만들어서 테스트를 거친 검증된 라이브러리
    • STL은 객체 지향 기법과 일반화 프로그래밍 기법을 적용하여서 만들어졌으므로 어떤 자료형에 대해서도 적용
    • STL을 사용하면 개발 기간을 단축할 수 있고 버그가 없는 프로그램


Designed by Tistory.