목록프로그래밍 (Programming) (27)
Automotive Software
그래픽환경을 사용하는 경우 코드 완료 후 상기 그림과 같이 등록하면 자동 구동시킬 수 있다. 기본적으로 코드는 gpiozero에서 제공하는 파이썬 라이브러리를 사용하여 간단히 작성되었다. 1. 라이브러리 설치를 위한 pip3 설치 sudo apt update sudo apt install python3-pip 2. pip3를 이용한 gpiozero 설치 $ sudo pip3 install gpiozero 3. 구동 : 하드웨어 접근 권한으로 인해 sudo 명령으로 수행 $ sudo python3 gpio_fanctrl.py gpiozero.readthedocs.io/en/stable/installing.html linuxize.com/post/how-to-install-pip-on-ubuntu-20.04..
함수명은 배열명과 같이 해당 개체(함수 또는 배열)의 주소를 가리키는 상수형 포인터 함수 호출은 포인터가 가리키는 개체(함수)를 주어진 매개변수와 함께 실행하는 것 함수를 가리키는 포인터 가리키고자 하는 함수의 반환형과 원형부(매개변수형)가 동일한 포인터 변수 동일한 반환형을 가지며 동일한 매개변수형을 가진 함수만을 포인팅 함수 호출시 함수명 대신 포인터가 사용 멤버 함수에 대한 포인터 클래스 이름과 범위 연산자(:::)를 함수명 앞에 명시 class cMyClass { public: void memFunc(); }; bool myFunc1(int data); bool myFunc2(int data); bool myFunc3(int data); int main() { int selected; bool (..
일반적인 멤버 변수는 비정적인(Non-static) 변수로 선언되어 클래스의 객체 생성 시 메모리를 할당받아 생성됨 객체가 생성되지 않으면 메모리내에 상주하지 않아 비정적인 멤버 변수는 접근 불가 접근 범위가 객체내부에 한정되므로 외부에서 선언이 불필요함 인스턴스(객체) 멤버 : 객체별 독립된 메모리 할당 정적(Static) 멤버 변수는 전역 변수와 같이 프로그램 실행 시 메모리를 할당받아 생성됨 객체가 생성되지 않더라도 이미 메모리에 상주하므로 정적인 멤버 변수는 접근 가능 일반적인 전역 변수와 같이 클래스 외부에서 직접적인 선언이 있어야 함 클래스 멤버 : 동일 클래스의 모든 객체(인스턴스)에서 공유 접근 클래스 객채를 통한 멤버 접근 방식은 일반적인 멤버 접근과 동일 클래스 객체를 통하지 않은 멤버..
다형성의 기본 : 프로그램 실행 시에 필요로 하는 파생 클래스(들)의 객체를 베이스 클래스의 객체 포인터에 연결하는 기능 단일 상속 (Single Inheritance) 하나의 베이스 클래스로부터 상속받아 파생 클래스 생성 확장성에서 제한을 가질 수 있으나, 명확한 클래스 간의 관계를 나타낼 수 있음 주의 사항 파생 클래스 멤버 메소드의 상향 흡수 (Percolating Upward) 몇몇 파생 클래스에서만 필요한 메소드를 최소화가 중요한 공통 베이스 클래스에 구현 베이스 클래스 포인터의 하향 형변환 (Casting Down) 베이스 클래스를 가리키는 포인터가 파생 클래스 내에 구현된 메소드를 호출하기 위해 파생 클래스의 포인터 형으로 변환하는 것 실행 시 형 식별(RTTI : Run Time Type ..
상속 (Inheritance) : 기존 클래스의 속성을 새로운 클래스 기본 속성으로 사용하는 것 파생 (Derivation) : 상속된 속성에 새로운 속성을 추가하여 클래스를 생성하는 것 // class 클래스_명 : 파생형 베이스_클래스_명 e.g) class myClass : public myBaseClass 접근 명시자 (Access specifier) public : 멤버 함수와 변수를 클래스 외부에서 접근 가능 private : 멤버함수와 변수를 클래스 외부에서 접근 불가능 protected : 멤버함수와 변수를 클래스 외부에서 접근 불가능하나 파생된 클래스에서는 가능 생성자와 소멸자 실행 순서 베이스 클래스 생성자 -> 신규 클래스 생성자 -> 신규 클래스 소멸자 -> 베이스 클래스 소멸자 상..
C++에서 내장형 데이터 타입에 대한 연산 외에 클래스(사용자 정의 타입)에 대한 연산을 가능하게 하는 문법 C를 기반으로 생각해보면 동일 구조체 타입 변수들의 멤버 간 연산을 위해 멤버 접근을 위한 함수를 만들거나 멤버 접근 연산자를 사용하여 일일이 접근방식을 기술하여야 함 중첩 가능한 연산자들 : 아래의 연산자를 제외한 대부분 연산자의 중첩 가능함 The operators :: (scope resolution), . (member access), .* (member access through pointer to member), and ?: (ternary conditional) cannot be overloaded.(추가 내용 확인은 여기서) 범위 지정 연산자, 멤버 접근 연산자, 멤버 접근 포인터 ..