8장. 객체 간 관계와 상속
·
SW/C++
객체 간 관계: 포함 관계와 상속 관계로 나뉨포함 관계(has-a): 특정 객체가 다른 객체를 포함하는 관계상속 관계(is-a): 한 클래스가 다른 클래스를 확장하는 관계재정의(오버라이딩): 상속받은 메서드를 새로운 방식으로 구현가상 함수와 다형성을 활용하여 객체지향 설계를 효율적으로 수행 가능6.1 객체 간 관계포함 관계: 한 클래스가 다른 클래스의 멤버 변수로 포함됨상속 관계: 한 클래스가 다른 클래스로부터 기능을 확장class Engine {public: void start() { cout 6.2 상속에 대한 기본 이론class Derived : public Base 형태로 상속기본 클래스의 멤버를 상속받아 사용 가능접근 지정자: public, protected, privateclass Bas..
7장. 연산자 다중 정의
·
SW/C++
연산자 다중 정의: 기존 연산자를 클래스에 맞게 재정의하는 기능연산자 함수: operator 키워드를 사용하여 연산자 동작을 정의하는 함수연산자 다중 정의는 코드의 가독성을 높이고, 사용자 정의 타입을 더 자연스럽게 사용할 수 있도록 지원7.1 연산자 함수란?operator+, operator- 등의 형태로 연산자 정의 가능멤버 함수 또는 비멤버 함수로 정의 가능연산자 오버로딩 시 적절한 반환 타입과 매개변수를 설정해야 함class Vector { int x, y;public: Vector(int a, int b) : x(a), y(b) {} Vector operator+(const Vector& other) const { return Vector(x + other.x, y ..
라즈베리파이5에 GPS 모듈(NEO-6M) 연결 및 설정 방법
·
SW/RPI5 프로젝트
1. NEO-6M 제품 사양 및 회로 연결NEO-6M 제품 구성일반적으로 NEO-6M 모듈과 안테나로 구성※ 추천 사항핀 헤더가 납땜 된 것을 사자.(원래 제품은 위 그림의 빨간 부분에 핀이 없음, 본인이 직접 납땜해야함)차량 네비게이션용 안테나를 사자! (감도가 좋고, 선이 길어, 실내에서 건물 외벽에 붙이면 수신 가능.)나는 안테나 SMA 소켓 인것과 (안테나 끝부분) + SMA to u.FL 젠더 (u.FL이 NEO-6M 그림에서 노란 부분) 구매함주요 사양전압: 3.3V ~ 5V (라파는 꼭 3.3v에 하세요)크기: 35 x 26 x 3mmUART 인터페이스: Baud Rate 9600bps라즈베리파이 회로 연결NEO-6M라즈베리파이 보드VCC3.3VGNDGNDRxGPIO14 (Tx)TxGPIO1..
L-value와 R-value
·
SW/C++
C++에서 L-value와 R-value는 프로그램에서 변수와 표현식의 메모리 속성과 수명에 관련된 중요한 개념입니다. 이를 이해하면 메모리 할당, 최적화, 참조자와 이동자의 작동 방식을 명확히 알 수 있습니다.정리L-value: 메모리에 저장되는 영속적인 객체R-value: 임시로 생성되어 연산이 끝나면 사라지는 값C++11부터는 R-value 참조와 Move Semantics를 활용하여 성능 최적화가 가능함1. L-value와 R-value의 정의L-value**L-value (Left Value)**는 특정 메모리 주소에 저장된 객체입니다.표현식이 끝난 후에도 사라지지 않고 메모리에 남아 있는 값입니다.변수와 같이 이름을 가진 객체가 대표적인 L-value입니다.L-value는 할당 연산자의 왼쪽 ..
6장. 복사 생성자와 임시 객체
·
SW/C++
복사 생성자복사 생성자는 기존 객체를 복사하여 새로운 객체를 생성할 때 호출됨.class MyClass {public: MyClass(const MyClass &obj) { cout 임시 객체와 보이지 않는 복사 생성함수 반환 시 반환된 객체는 임시 객체로 간주되며, 보이지 않는 복사 생성이 일어날 수 있음.Shallow copy, Deep copyShallow copy는 객체 내부의 포인터만 복사하는 반면, Deep copy는 포인터가 가리키는 대상까지 새로 복사하는 방식임.class MyClass {private: int* data;public: MyClass(int val) { data = new int(val); } MyClass(const MyClass &obj..