본문 바로가기

반응형

VEDA 복습

(40)
VEDA 17일차 - Qt 프로그래밍 자료구조Linked List : 값 + 다음 값의 주소Dictionary : 키 + 값, 내부적으로 키 값이 정렬되어 있어서 탐색에 용이 Component를 사용하는 방법Main이  되는 위젯 -> 컴포넌트 생성 -> 컴포넌트 설정 -> connect(컴포넌트 객체, 조건 동작, 리턴 객체 주소, 동작 함수) std 라이브러리와 Qt 라이브러리는 호환된다.사용법도 유사하다. signal : slot = n : n 강의가 기본적으로 실습 위주로 진행되서 이론적으로 정리할게 별로 없음
VEDA 16일차 - Qt 주로 실습 위주로 진행됨 QtGUI 개발을 위한 클로스 플랫폼 프레임워크(윈도우, 리눅스, 안드로이드 등 지원)Qt Creator, Qt DesignerQML(Qt Meta-Objecct Language) Qt의 장점 : C++ 지원, 크로스 플랫폼 호환, 풍부한 커뮤니티와 사용자 윈도우 환경에서 GUI 개발 : WPF, WinUI3, Node.js, PyQt etc 트리구조 : 모든 2차원 문서, UI는 트리 구조로 나타낼 수 있음(위젯 -> UI) 이벤트 기반함수를 직접 호출하지 않고,, 특정한 조건에서 호출될 수 있도록 전달함수 자체를 변수화, 메타 프로그래밍call-back, signal-slot(Qt에서 callback 방식) Qt 라이브러리를 사용해보자!!  위젯 생성 -> connect() ..
VEDA 14일차 - C++ 알고리즘C++에서 자주 사용되는 알고리즘을 라이브러리로 제공된다. 컨테이너와 상관없이 독립적으로 작용한다.정렬, 검색, 변환, 반복자, 집계 등 관련 알고리즘 제공 정렬 알고리즘quick sort : std::sort(begin, end, compare) ;worst : O(n^2)average : O(nlogn) 안정 정렬/불안정 정렬 : sort 순위가 같을 때 바꾸느냐, 바꾸지 않느냐의 차이 탐색 알고리즘std::find(first, end, target) : target의 위치를 찾아서 반환, iterator 형식std::binary_search(first, end, target) : 정렬되어 있는 상태에서 탐색 가능, 빠른 속도 모던 C++범위 기반 for 문자료형 추론 auto, declyty..
VEDA 13일차 - C++ C++ 표준 라이브러리주요 기능 : 입출력, 문자열 처리, 컨테이너, 알고리즘, 기타 유틸리티, 헤더파일을 추가하는 것만으로 사용 가능 a.c -> a.o -> a.o + libc.a + (lib.o) + crt0.o -> a.execrt0.o : 메인 함수를 호출하기 전에 필요한 초기화를 수행하는 루틴의 집합.a 파일 : 필요한 오브젝트 파일을 모아놓은 것 String 라이브러리 : length() : 문자열 길이 반환size() : 메모리의 크기 반환empty() : 문자열이 비어있으면 true, 아니면 falseappend() : 문자열 추가find() : 문자열 찾기(인덱스 반환)compare() : 문자열 비교하여 0:같음, 양수:대상 문자열이 더 길거나, 일치하지 않는 첫 번째 문자가 더 큼,..
VEDA 12일차 - C++ 객체지향 설계의 원칙SOLID 원칙S( Single Responsibility Principle ), 단일 책임 원칙 : 클래스는 한 가지 기능만을 수행해야 하며 한 가지 이유로만 변경O( Open/Closed Principle ), 개방 폐쇄 원칙 : 확장에는 열려 있고, 수정에는 닫혀 있어야 함L( Liskov Substitution Principle ), 리스코프 치환 원칙 : 자식 클래스는 언제나 부모 클래스를 대체할 수 있어야 함I( Interface Segregation Principle ), 인터페이스 분리 원칙 : 하나의 거대한 인터페이스는 분리되어야 함D( Dependency Inversion Principle ), 의존성 역전 원칙 : 상위 모듈이 하위 모듈에 의존해서는 안됨설계 원칙 ..
VEDA 11일차 - C++ 함수 오버로드함수명이 같았도 파라미터(파라미터 데이터 타입, 순서 포함)가 다르다면 다른 함수로 구분된다. 반환 형식만으로는 구분이 되지 않는다. 디폴트 파라미터 : 매개변수 입력이 없을 때 입력되는 디폴트 값, 오버로드 되는 함수를 줄이는 역할을 한다.(반대로 디폴트 파라미터를 사용하는 경우, 파라미터 구분이 되지 않으면 오류가 발생한다.)디폴트 파라미터는 뒤의 인수부터 차례대로 들어가야 한다.(안하는 경우 빌드 오류 발생) 생성자의 호출 순서부모 클래스 생성자 -> 자식 클래스 생성자X X() X(int)XX XX() XX(int) XX(int m, int s) : X(m) XX xx(); // X() - > XX()XX xx(1); //X() -> XX(int)XX xx(1, ..
VEDA 10일차 - C++ 객체지향 특성추상화 : 불필요한 부분을 배제하고 공통된 특징을 추출캡슐화 : 변수와 함수를 클래스로 감싸서 은닉, 불필요한 정보 노출 방지상속성 : 부모 객체의 특성을 이어받을 수 있음다형성 : 상속 관계의 객체에서 같은 기능이 다르게 동가할 수 있는 특성constructor : 객체가 생성된 직후에 자동으로 호출되는 함수, 여러 후보군들을 둘 수 있다. (단 default constructor는 후보 constructor가 없을 때나 추가됨)destructor : 객체가 해제되기 바로 직전에 자동으로 호출되는 함수 접근제어private : 클래스 내부에서만 접근 가능(default)protected : 상속받는 클래까지 접근 가능public : 접근에 제한이 없음struct와 class의 차이 : st..
VEDA 9일차 - C++ 프로그래밍 C++ 예외 처리try - catch - throw : 조건문과 return 문을 이용해 예외를 처리하기 어려운 경우 사용try{ //처음 동작 throw ~~~; //예외 발생 : 데이터의 타입에 따라서 catch 문이 구분된다.} catch(예외_형식 예외_이름){ //예외 발생 시 동작 } catch(...){ //throw가 발생하였지만 사용자가 특별하게 정의하지 않은 경우 사용, else와 비슷} throw가 발생 시 같은 범위에서 catch로 우선 처리 -> 같은 범위의 catch가 없다면 상위 호출부에서 catch 처리(Stack Unwinding) assert(단언하다)/*사용 형식*/assert(condition) // ***condition은 다른 코드에 영향을 주지 않아야 한다...

반응형