728x90

분류 전체보기 91

38. C++ 화살표 연산자

C++에서 화살표 연산자(->)는 포인터가 가리키는 객체의 멤버(변수나 메서드)에 접근할 때 사용됩니다. 이 연산자는 주로 객체 지향 프로그래밍에서 매우 중요한 역할을 하며, 포인터를 사용하여 객체를 다룰 때 편리합니다.구체적인 설명:포인터와 객체:C++에서 객체는 클래스의 인스턴스이며, 객체의 멤버(변수 또는 메서드)에 접근하려면 해당 객체의 이름을 통해 접근할 수 있습니다.그러나 객체의 주소를 저장하는 포인터를 사용하면, 직접 객체에 접근하는 것이 아니라 포인터를 통해 간접적으로 접근해야 합니다.화살표 연산자의 역할:화살표 연산자는 포인터가 가리키는 객체의 멤버에 접근하는 데 사용됩니다.예를 들어, Obj라는 클래스의 인스턴스가 있고, 이 인스턴스의 포인터가 pObj라고 할 때:pObj->member..

반도체/C++ 2024.09.04

37. C++ 포인터와 배열을 사용한 함수 인자 전달의 장점

1. 메모리 효율성복사 비용 절감: 배열을 함수에 전달할 때, 배열의 모든 요소를 복사하는 대신 배열의 첫 번째 요소의 주소(포인터)를 전달합니다. 이는 메모리 사용량을 줄이고, 큰 배열을 다룰 때 성능을 크게 향상시킵니다.2. 원본 데이터 수정 가능원본 데이터 접근: 포인터를 사용하여 함수 내에서 배열의 요소를 직접 수정할 수 있습니다. 이를 통해 함수가 호출된 후에도 변경된 값을 유지할 수 있습니다.#include void modifyArray(int* arr, int size) { for (int i = 0; i 3. 다양한 데이터 구조 처리다양한 크기와 형태의 배열 처리: 포인터를 사용하면 크기가 정해지지 않은 배열, 동적 할당된 배열, 2차원 배열 등 다양한 형태의 데이터를 처리할 수 있습..

카테고리 없음 2024.09.03

36. C++에서 배열과 포인터 관계

1. 배열 이름과 포인터배열 이름: 배열의 이름은 배열의 첫 번째 요소의 주소를 나타냅니다. 예를 들어, arr이라는 배열이 있을 때, arr은 &arr[0]와 같으며, 이는 배열의 첫 번째 요소의 주소입니다.int arr[3] = {10, 20, 30};std::cout 2. 포인터와 배열의 사용포인터를 이용한 배열 접근: 포인터를 사용하여 배열의 요소에 접근할 수 있습니다. 배열의 이름을 포인터처럼 사용할 수 있어, 포인터 연산을 통해 배열 요소에 쉽게 접근할 수 있습니다.#include int main() { int arr[3] = {10, 20, 30}; int* ptr = arr; // 배열 이름을 포인터에 저장 for (int i = 0; i 3. 배열과 포인터의 메모리 구조연..

반도체/C++ 2024.09.03

35. C++에서의 포인터 개념

C++에서 포인터는 메모리 주소를 저장하는 변수입니다. 포인터를 사용하면 변수의 주소를 직접 조작할 수 있으며, 이를 통해 동적 메모리 할당, 배열과 문자열 처리, 함수 인자 전달 시 효율성을 높일 수 있습니다.   1. 포인터의 기본 개념포인터 선언: 포인터는 특정 데이터 타입의 변수의 주소를 저장합니다. 포인터를 선언할 때는 데이터 타입 뒤에 * 기호를 붙입니다.int* ptr; // int형 포인터 ptr 선언주소 연산자 &: 변수의 주소를 얻기 위해 & 연산자를 사용합니다.int a = 10;int* ptr = &a; // a의 주소를 ptr에 저장역참조 연산자 *: 포인터가 가리키는 주소의 값을 얻기 위해 * 연산자를 사용합니다.int value = *ptr; // ptr이 가리키는 주소의 값을..

반도체/C++ 2024.09.03

34. 사원관리 프로그램 C++

Employee 클래스를 정의하고, 사원의 이름과 생일을 저장하고 출력하는 기능을 포함#include #include class Employee {private: std::string name; std::string birthday; // 생일을 문자열로 저장 (형식: YYYY-MM-DD)public: // 생성자 Employee(const std::string& name, const std::string& birthday) : name(name), birthday(birthday) {} // 이름 가져오기 std::string getName() const { return name; } // 생일 가져오기 std::string g..

반도체/C++ 2024.09.03

중위표기법과 후위표기법

중위 표기법과 후위 표기법은 수식을 표현하는 두 가지 방법입니다. 각각의 방식은 연산자의 위치에 따라 다름1. 중위 표기법 (Infix Notation)중위 표기법은 일반적으로 우리가 사용하는 수식의 표현 방식입니다. 연산자가 피연산자 사이에 위치합니다. 예를 들어:수식: ( A + B )예: ( 3 + 4 ), ( x * (y + z) )중위 표기법에서는 연산자의 우선순위를 고려하여 괄호를 사용하여 연산의 순서를 명시할 수 있습니다. 예를 들어, ( 3 + 4 * 5 )에서 곱셈이 덧셈보다 우선 수행되므로 결과는 ( 3 + (4 * 5) = 23 )입니다.2. 후위 표기법 (Postfix Notation)후위 표기법에서는 연산자가 피연산자 뒤에 위치합니다. 이 방식에서는 괄호를 사용할 필요가 없으며, ..

기획 2024.09.03

33. C++의 GET & SET

C++에서 GET과 SET은 객체 지향 프로그래밍의 중요한 개념, 주로 클래스의 멤버 변수에 대한 접근을 제어하는 데 사용됩니다. 이 개념은 데이터 캡슐화(encapsulation)를 통해 데이터의 안전성을 높이고, 코드의 유지보수성을 향상시키는 데 기여1. 데이터 캡슐화C++에서 클래스는 데이터와 그 데이터를 처리하는 함수를 하나의 단위로 묶는 구조입니다. 클래스 내부의 멤버 변수는 보통 private로 선언되어 외부에서 직접 접근하는 것을 막습니다. 이를 통해 객체의 상태를 보호하고, 무분별한 변경을 방지할 수 있습니다.2. GET 함수GET 함수는 클래스의 멤버 변수를 외부에서 읽을 수 있도록 제공하는 함수입니다. 일반적으로 get 접두사를 사용하여 이름을 정의합니다. GET 함수는 보통 다음과 같..

반도체/C++ 2024.09.03

32. C++에서의 객체지향

C++에서의 객체지향 프로그래밍(OOP, Object-Oriented Programming)은 프로그램을 구성하는 데 있어 객체라는 개념을 중심으로 하는 프로그래밍 패러다임입니다.   1. 객체(Object)와 클래스(Class)객체(Object): 객체는 속성과 행동을 가진 실체를 의미합니다. 예를 들어, "자동차"라는 객체는 색상, 모델, 속도와 같은 속성을 가질 수 있으며, "주행하다", "정지하다"와 같은 행동을 수행할 수 있습니다. 객체는 실제 세계의 개념을 컴퓨터 프로그램으로 모델링하는 데 사용됩니다.클래스(Class): 클래스는 객체를 생성하기 위한 청사진 또는 템플릿입니다. 클래스는 객체가 가질 속성과 행동을 정의합니다. 즉, 클래스는 객체의 설계도 역할을 하며, 객체는 클래스의 인스턴스(..

반도체/C++ 2024.08.30

31. C++에서 메모리 관리의 중요성과 힙(heap)과 스택(stack)의 차이

C++에서 메모리 관리의 중요성과 힙(heap)과 스택(stack)의 차이 1. 메모리 관리의 중요성프로그램이 제대로 실행되기 위해서는 모든 변수의 주소값이 컴파일 시에 확정되어야 합니다.그러나 이러한 방식은 프로그램에 많은 제약을 주기 때문에, 실행 시에 더 유연하게 메모리를 관리할 수 있는 방법이 필요합니다.2. 스택(Stack)과 힙(Heap)스택:컴파일러에 의해 메모리가 자동으로 관리됩니다.메모리 할당과 해제가 자동으로 이루어지기 때문에 안정성이 보장됩니다.힙:사용자가 직접 메모리를 할당하고 해제해야 하는 공간입니다.메모리를 자유롭게 관리할 수 있지만, 잘못된 관리로 인해 메모리 누수나 오류가 발생할 수 있습니다.3. C 언어에서의 메모리 관리C에서는 malloc과 free 함수를 사용하여 힙에서..

반도체/C++ 2024.08.30
728x90