본문 바로가기
728x90
반응형

C++6

C++ 일반화 프로그래밍(generic programming) C++이 가지는 프로그래밍 언어로서의 특징 중 하나로 일반화 프로그래밍을 들 수 있다. 일반화 프로그래밍은 데이터를 중시하는 객체 지향 프로그래밍과는 달리 프로그램의 알고리즘에 그 중점을 둔다. 이러한 일반화 프로그래밍을 지원하는 C++의 대표적인 기능 중 하나가 템플릿이다. 템플릿(template) 매개변수의 타입에 따라 함수나 클래스를 생성하는 매커니즘 타입이 매개변수에 의해 표현되므로, 매개변수화 타입이라고도 불린다. 템플릿을 사용하면 타입마다 별도의 함수나 클래스를 만들지 않고, 여러 타입에서 동작할 수 있는 단 하나의 함수나 클래스를 작성하는 것이 가능하다. 함수 템플릿(function template) 함수의 일반화된 선언을 의미한다. 함.. 2019. 5. 5.
C++ 소멸자(desturctor) c++에서 생성자는 객체 멤버의 초기화뿐만 아니라, 객체를 사용하기 위한 외부 환경까지도 초기화하는 역할을 한다. 이러한 역할을 하는 멤버 함수를 소멸자(destructor)라고 한다. 소멸자는 객체의 수명이 끝나면 컴파일러에 의해 자동으로 호출되며, 사용이 끝난 객체를 정리해 준다. 상속(inheritance) 상속은 추상화, 캡슐화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나이다. 상속은 사용자에게 높은 수준의 코드 재활용성을 제공하며, 클래스 간의 계층적 관계를 구성함으로써 다형성의 문법적 토대를 마련한다. 클래스 상속(class inheritance) C++에서 클래스 상속이란 기존에 정의되어 있는 클래스의 모든 멤버 변수와 멤버 함수를 물려받아, 새.. 2019. 5. 4.
C++ 생성자 멤버 변수의 초기화 클래스를 가지고 객체를 생성하면, 해당 객체는 메모리에 즉시 생성된다. 이 객체는 모든 멤버 변수를 초기화하기 전에는 사용할 수 없다. 객체의 멤버 변수는 사용자나 프로그램이 일반적인 초기화 방식으로 초기화 할 수 없다. 그 이유는, 객체의 멤버 중에는 private 멤버도 있으므로, 이러한 private 멤버에 직접 접근할 수 없기 때문이다. 따라서 private 멤버에 접근 할 수 있는 초기화만을 위한 public 함수가 필요하다. 이러한 초기화 함수는 객체가 생성된 후부터 사용되기 전까지 반드시 멤버의 초기화를 위해 호출되어야 한다. 객체의 생성과 동시에 멤버 변수를 초기화해주는 생성자(constructor)라는 멤버 함수를 제공한다. 클래스 생성자의 이름은 해당 클래스의.. 2019. 5. 4.
C++ 클래스 선언 클래스란, 객체 지향 프로그래밍의 특징 중 하나인 추상화(abstraction)를 사용자 정의 타입으로 구현한 것이다. c++에서 이러한 클래스를 선언하는 방법은 구조체를 선언하는 방법과 거의 같다. 구조체는 struct 키워드를 사용하지만, 클래스는 class 키워드와 접근 제어 지시자를 함께 사용한다. 접근 제어 지시자는 객체 지향 프로그래밍의 특징 중 하나인 정보 은닉(data hiding)을 위한 키워드이다. 정보 은닉(data hiding) c++에서 구조체의 모든 멤버는 외부에서 언제나 접근 할 수 있다. 하지만, 클래스는 객체지향 프로그래밍의 기본 규칙 중 하나인 정보 은닉에 대해서도 생각해야한다. 정보 은닉이란 사용자가 굳이 알 필요가 없는 정보는 사용자로부터 숨겨야 한다는 개.. 2019. 5. 4.
C++ 함수 오버로딩 ( function overloading) 디폴트 인수가 인수의 개수를 달리하여 같은 함수를 호출하는 것이라면, 함수 오버로딩은 같은 이름의 함수를 중복하여 정의하는 것을 의미한다. 객체 지향 프로그래밍의 특징 중 바로 다형성(polymorphism)의 구현이다. 1. void Display(const char* str, int n); // 문자열 str을 n번 출력함. 2. void Display(const char* str1, const char* str2); // 문자열 str1과 str2를 연달아 출력함. 3. void Display(int x, int y); // x * y를 출력함. 4. void Display(double x, double y); // x / y를 출력함. 함수.. 2019. 5. 4.
C++ C++ 특징 객체 지향 프로그래밍 언어이다. 일반화 프로그래밍 언어이다. 네임스페이스(namespace) C++프로그램을 작성할 때 발생하는 이름에 대한 충돌을 방지해 주는 방법을 제공한다. 네임스페이슨 C언어에는 없는 C++만의 새로운 기능이다. 삼항 연산자(ternary operator) 문법 조건식 ? 반환값1 : 반환값2 ?앞의 조건식에 따라 결과값이 참이면 반환값1을 반환하고, 결과값이 거짓이면 반환값2를 반환한다. 포인터란? C++에서 포인터(pointer)란 메모리의 주소값을 저장하는 변수이며, 포인터 변수라고도 부른다. 포인터 연산자 주소 연산자(&) 변수의 이름 앞에 사용하며, 해당 변수의 주소값을 반환한다. '&' 기호는 앰퍼샌드(ampersand)라고 읽으며, 번지 연산자라고도 부른다.. 2019. 5. 4.
728x90
반응형