Study/C++

· Study/C++
파생 클래스 상속(inheritance)는 추상화, 캡슐화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나이다. 상속은 사용자에게 높은 수준의 코드 재활용성을 제공하고 클래스 간의 계층적 관계를 구성함으로써 다형성의 문법적 토대를 마련한다. C++에서 클래스 상속이란 기존에 정의되어 있는 클래스의 모든 멤버 변수와 멤버 함수를 물려받아 새로운 클래스를 작성하는 것을 의미한다. 이때 물려주는 클래스를 기초 클래스(base class), 부모 클래스(parent class), 상위 클래스(super class) 라고 부른다. 상속을 통해 새롭게 만들어지는 클래스는 파생 클래스(derived class), 자식 클래스(child class), 하위 클래스(sub class)라고 한다. 상속을 통..
· Study/C++
C++에서는 캡슐화를 위한 추가적인 장치가 더 있는데, 바로 프렌드(friend)라고 불리우는 문법이다. 캡슐화에 관한 내용은 아래 포스팅을 참고하면 좋다.2024.05.08 - [Development/OOP] - 객체 지향 프로그래밍 - 캡슐화는 정보 은닉이 아니다 객체 지향 프로그래밍 - 캡슐화는 정보 은닉이 아니다1. 개요최근 코딩 테스트 준비를 위한 C++언어를 공부하며 캡슐화 그리고 정보 은닉이라는 단어를 보았다.내가 주력으로 사용하는 Apex나 Java 언어를 공부할 때 객체 지향 프로그래밍, 즉 OOP의 개unknown-dev.tistory.com  프렌드(friend) C++에서 객체의 private 멤버는 해당 객체의 public 멤버 함수를 통해서만 접근이 가능하다.하지만 경우에 따라서..
· Study/C++
연산자 오버로딩 C++에서는 함수 오버로딩과 마찬가지로 연산자에 대한 오버로딩도 가능하다.하나의 연산자를 여러 의미로 사용할 수 있게 한다.클래스도 사칙 연산자를 오버로딩하여 하나의 타입으로 사용이 가능하다. 연산자를 오버로딩하기 위해서는 연산자 함수 라는것을 사용한다.연산자 함수는 operator 키워드를 사용하여 연산자를 오버로딩 한다.적법한 C++ 연산자이여야 하며 operator 키워드와 공백없이 연결되어 표시해야 한다. 아래는 2차원 상의 두 좌표 간 거리를 구할 수 있도록, 뺄셈 연산자를 오버로딩 하는 예시이다.#include using namespace std;class Position{private: double x_; double y_;public: Position(double x, do..
· Study/C++
생성자 클래스를 가지고 객체를 생성하면 해당 객체는 메모리에 즉시 올라가게 되며 이를 인스턴스라고 한다.그러나 그 객체는 멤버 변수를 초기화 하기전에는 사용할 수 없다.. 객체의 멤버 변수는 일반적인 초기화 방식으로 초기화할 수 없는데, 이는 private 멤버에 직접 접근할 수 없기 때문이다.따라서 private 멤버에 접근할 수 있는, 초기화만을 위한 public 함수가 필요하다.이러한 초기화 함수는 객체가 생성된 후부터 사용되기 전까지, 멤버의 초기화를 위해 호출되어야 한다. C++에서는 객체의 생성과 동시에 멤버 변수를 초기화해주는 생성자(constructor)라는 멤버 함수를 제공한다.생성자의 이름은 클래스의 이름과 동일하다. 생성자의 특징은 다음과 같다.초기화를 위한 데이터를 인수로 받을 수 ..
· Study/C++
클래스의 개념 (객체 지향 프로그래밍) C++는 C언어에 객체 지향 프로그래밍의 개념을 더한 언어이다. 객체 지향 프로그래밍, OOP, Object-Oriented Programming은 모든 데이터를 객체(Object)로 표현하며, 객체가 바로 프로그래밍의 중심이 되는 방법론이다.  객체는 실생활에서 우리가 인식할 수 있는 모든 사물이 될 수 있다.이러한 객체의 상태(state)와 행동(behavior)을 구체화하는 형태의 프로그래밍이 바로 OOP이다.그리고 이와 같은 객체를 만들어내기 위한 틀이 바로 클래스이다. 흔히 드는 비유로, 클래스는 붕어빵 틀이고 객체는 그 틀에서 찍혀나오는 붕어빵 이라고 한다. 클래스는 어떤 객체의 개념, 설계도 혹은 형틀 등등 이러한 느낌의 무언가라고 생각하면 되겠다. O..
· Study/C++
유효 범위와 연결 유효 범위(Scope)는 하나의 변환 단위 내에서 어떤 변수가 사용될 수 있는 범위를 나타낸다.변환 단위라는 단어는 C++에서 파일(file)이라는 용어 대신에 사용하는 말이다.  즉, 확장자가 .cpp로 끝나는 하나의 파일이 하나의 변환 단위라고 이해할 수 있다. C++에서 변수의 Scope는 기본적으로 함수 내에서 선언된 변수는 함수 내부에서만 사용이 가능하고함수 밖에서 선언된 변수는 변수가 선언된 이후에 나오는 모든 함수에서 사용이 가능하다. 연결(linkage)이란, 해당 변수를 사용할 수 있는 변환 단위의 접근 가능 여부를 나타낸다.외부 연결을 가지는 변수는 여러 파일에서 사용이 가능내부 연결을 가지는 변수는 하나의 파일에서만 사용이 가능함수 내에서 선언된 변수는 하나의 파일(..
· Study/C++
제목을 함수의 심화로 지었지만, 사실 심화 내용은 아니고 C++에서 추가된 함수 관련 문법들을 다룬다.  참조자 참조자(reference)는 특정 변수의 실제 이름 대신 사용하는 식별자이다.크기가 큰 구조체와 같은 데이터를 함수의 인수로 전달해야 할 경우에 사용한다.또한 C++에서 클래스를 설계할 때에도 자주 사용된다. 참조자는 다음과 같이 선언한다.int 변수이름; //변수 선언int& 참조자이름 = 변수이름; //참조자 선언 포인터에서 사용하는 연산자와 똑같은 기호를 사용하긴 하나, 이는 주소 연산자가 아니라 타입을 식별하기 위한 식별자로써 사용된다. 즉 int&는 int에 대한 참조를 의미한다.참조자는 대상 변수와 같은 메모리 위치를 참조하게 된다. 참조자는 선언과 동시에 초기화가 되어야 하며, 한..
dev_digger
'Study/C++' 카테고리의 글 목록