ProgramingLagnuage/C++7 [C++] 객체지향 프로그래밍 객체변수들과 참고 자료들로 이루어진 소프트웨어 덩어리인스턴스 변수(instance variable) 와 인스턴스 메소드(instance method) 객체에 정의되어 있는 함수, 변수들이 외부로 부터 ’보호’ 되고 있기 때문 외부에서 직접 인스턴스 변수의 값을 바꿀 수 없고 항상 인스턴스 메소드를 통해서 간접적으로 조절하는 것=> 캡슐화(Encapsulation) "객체가 내부적으 로 어떻게 작동하는지 몰라도 사용할 줄 알게 된다"현실 세계에서의 존재하는 것들을 나타내기 위해서는 추상화(abstraction) 클래스- 객체를 담는 틀(설계도) C++에서 클래스를 이용해서 만들어진 객체를 인스턴스(instance)라고 한다. class Person{private: int age; char .. 2025. 1. 1. [C/C++] 동적 메모리 할당 방식, 변수 취급 방식 차이 메모리 프로그램 실행 시 자유롭게 할당하고 해제할 수 있는 힙(heap) 메모리 공간이 생김 -> 스택(stack)과 다르게 메모리 누수를 프로그래머가 담당해야 함. C언어의 특징: 메모리 관리 방식 정적/전역 변수: 컴파일 시점에 주소값이 확정 동적 할당 변수: malloc/free를 통해 런타임에 메모리를 관리 프로그래머 제어 중시 malloc은 void*를 반환하여 프로그래머가 명시적 타입 변환 메모리 초기화를 프로그래머가 직접 C++의 특징: 메모리 관리 방식 정적/전역 변수: C와 동일하게 컴파일 시점에 주소값이 확정 동적 할당 변수: new/delete를 통해 런타임에 메모리를 관리 타입 안전성 중시 n.. 2024. 12. 31. [C++] 템플릿 프로그래밍(template programming) 템플릿 프로그래밍(template programming)= 제너릭 프로그래밍(generic programming) C: 절차지향 언어(Procedural language)JAVA : 객체지향언어(Object-Oriented language) C++은 표준으로 템플릿을 라이브러리 형태로 제공한다. (STL) 근데 템플릿은 잘못 작성하면 미친듯한 오류를 생성해낸다. 그럼에도 쓰는 이유는- 타입 독립성(코드의 재사용성)- 코드 중복 감소- 컴파일 타임에 오류 발견 템플릿(Template)- 함수의 작성을 용이하게 하고, 재사용 가능하게끔 하여 SW 생산성과 유연성을 증가시킨다.-- 자료형이 변할 때마다 함수(클래스)를 새로 작성할 이유가 없다. - c에서 #define으로 정의되는 매크로와 유사하지만, 타입.. 2024. 10. 18. [C++] 사용자 정의 유형 - Structure - 기본 struct 정의 : 여러 데이터를 하나로 묶어 새로운 데이터 타입 정의struct Vector { int sz; // 원소의 개수를 저장하는 정수형 변수 double∗ elem; // 원소들을 가리키는 포인터}; - 구조체 선언Vector v;이 상태에서는 v의 포인터 elem이 아무것도 가리키지 않기 때문에 의미가 없다. - 동적 메모리 할당 void vector_init(Vector& v, int s){ v.elem = new double[s]; // s개의 double을 저장할 수 있는 배열을 할당 v.sz = s; // sz에 원소의 개수를 저장} new double[s]는 동적 메모리 할당을 통해 s개의 double 타입 원소를 저장할 수 있는 배열을 생성하고, 그 배열의 시작 주.. 2024. 9. 23. [C++] C++ 소개 C++ 특징 절차적 프로그래밍(Procedural programming)- 적절한 데이터 구조 설계의 초점이 맞춰짐- C와 다르게 다른 언어에서도 C++를 통해 이 절차적 프로그래밍을 지원해줌데이터 추상화(Data abstraction)- 클래스를 통해 구체적이고, 추상적인 데이터들을 관리- 클래스 내부에 데이터와 그 데이터를 처리하는 함수(메서드)를 포함시켜 데이터의 구조와 동작을 캡슐화.- 인터페이스를 통해 사용자는 내부 구현 세부 사항에 의존하지 않고 클래스의 기능을 활용 가능객체 지향 프로그래밍(Object-oriented programming)- 클래스, 상속, 다형성, 캡슐화와 같은 OOP 개념을 통해 유지보수성과 재사용성을 높임.- 설계 단계에서 객체 간의 관계를 정의하고, 코드에서 이러한 .. 2024. 9. 22. [C++] Class 주요 개념 1. 멤버 변수 (Member Variables)정의: 클래스의 인스턴스(객체)에 속하는 변수를 말합니다. 각 객체는 고유한 상태를 유지하기 위해 멤버 변수를 가집니다.class Person {public: std::string name; // 멤버 변수 int age; // 멤버 변수};2. 멤버 함수 (Member Functions)정의: 클래스의 멤버 변수에 접근하거나 조작하는 기능을 가진 함수입니다. 객체에 대한 동작을 정의합니다.class Person {public: std::string name; int age; void introduce() { // 멤버 함수 std::cout 코드 구조클래스 안에서 정의:멤버 함수의 선언과 정의.. 2024. 9. 22. 이전 1 2 다음