728x90

분류 전체보기 518

C(& C++)이론 4. 객체 지향

C++의 설계 철학 C++을 개발한 Bjarne Stroustrup은 1994년에 출간된 "The Design and Evolution of C++"에서 C++을 설계 할 때의 원칙을 다음과 같이 기술했다. 1. C++은 엄격하게 타입 검사를 하고, 범용 언어로 사용할 수 있으며, C언어만큼 효율적이고 이식성이 높아야 한다. 2. C++은 여러 가지의 프로그래밍 스타일을 지원할 수 있어야 한다. (절차 지향 프로그래밍, 데이터 추상화, 객체 지향 프로그래밍, 일반화 프로그래밍) 3. C++은 만약 잘못될 가능성이 있다고 하더라도 프로그래머가 자유롭게 선택할 수 있도록 설계되어야 한다. 4. C++은 C에서 쉽게 옮겨갈 수 있도록 최대한 C와 호환성이 있어야 한다. 5. C++은 플랫폼에 의존적이거나 일반..

C(&C++) 이론 3. C++의 특징

내용 참고 C++ 기초 플러스 4판 (성안당) 나무위키 C++의 특징 ■ C++은 Bjarne Stroustrup이 C언어에 객체 지향의 클래스 개념을 추가하여 만든 C with Classes로 시작된 언어이다. ■ 구조지향적 언어는 간단한 알고리즘에는 유용하지만 프로그램이 커질수록 코드가 복잡해지는 단점이 있었다. ■ 또한 구조지향적 구조의 핵심인 함수는 다른 코드에서 재사용하기 어렵다는 문제도 있다. ■ 그래서 Bjarne Stroustrup은 C언어를 발전시키기 위해서 simula67의 객체지향 개념을 포함시켰다. ■ 하지만 Bjarne Stroustrup은 C언어를 빠르고 강력하고 유용한 언어로 만드는 것에만 집중하고 있었다. ■ 그래서 그는 곧 C++에 일반화 프로그래밍을 위한 템플릿 기능도 추..

C(&C++)이론 2. C언어와 Cpp언어의 차이점

1. 변수 선언을 변수를 쓰기 전이라면 어디에서 해도 된다. (원래는 스코프 처음에 해야만 했다.) C스타일 Cpp스타일 int main() { int result, a = 3, b = 4;int i; result = a + b; for (i = 0; i < 10; i++) { result += i; } return 0; } int main() { int result, a = 3, b = 4; result = a + b; for (int i = 0; i < 10; i++) { result += i; } return 0; } 2. 'bool형'이 추가되었다. bool형은 참과 거짓만을 갖는 자료형이다. C언어에서는 C99에서 stdbool.h 를 포함하면 사용할 수 있다. 3. 'reference'가 추가..

C(&C++)언어 이론 1. C언어 개요

내용 참고 C++ 기초플러스 4판(성안당) 나무위키 (절차적 프로그래밍 항목 등) 위키백과 (구조적 프로그래밍 항목 등) C언어 개요/ C언어의 특징과 구성 Ⅰ. C언어에 담긴 프로그래밍 패러다임 ⅰ. 절차적 프로그래밍 (Procedural Programming) ■ Procedural Programming이 절차적 프로그래밍이라고 번역이 되었지만, 사실 모든 프로그래밍은 절차적이다. ■ 절차적 프로그래밍은 명령형 프로그래밍의 명령들을 묶어서 추상화 시킨 '프로시저(procedure)'를 추구한다. ■ procedure란 데이터와 이를 처리하는 알고리즘을 함께 묶어서 추상화시킨 것으로서 C언에서는 함수로 표현된다. ■ 절차적 프로그래밍 언어는 프로시저(즉, 함수) 사용을 통해 코드의 재사용성을 극대화시키..

2. kotlin 배열 선언

kotlin에서 배열 선언하기 val arr1 = emptyArray() val arr2 = arrayOfNulls(3) arr2[0] = 1 arr2[1] = 2 arr2[2] = 3 val arr3 = arrayOf(1,2,3) val arr4 = Array(3) {i-> i+1} 1) arr1은 size가 0인 빈배열을 만든다. 2) arr2은 size가 3이고 Int형 배열을 만들고 null로 초기화한다. 그 뒤 인덱스를 이용하여 1,2,3으로 초기화했다. 3) arr3은 Int형 배열을 만들고 1,2,3으로 초기화한다. 초기값으로 타입추론이 가능하므로 는 생략 가능하다. 4) arr4은 Size가 3인 Int형 배열을 만들고 람다식으로 초기화했다. kotlin에서 n차원 배열 선언하기 val a..

001. 이미지 파일 불러오는 예제 + imread() 함수

#include #include using namespace cv; using namespace std; int main() { //이미지 파일을 저장할 Mat 클래스의 인스턴스를 생성한다. Mat img1, img2; //imread() 함수로 이미지 파일을 불러온다. img1 = imread("img/background.png"); //Mat클래스의 empty() 메소드를 이용하여 이미지 파일이 제대로 불러와졌는지 확인한다. if (img1.empty() && img2.empty()) { //기본적으로 imread() 함수에서 지정한 경로에 파일이 없으면 실패한다. cout

000. VS2022 기준 opencv (with C++) 환경 세팅하기

// 개인 메모용입니다. 1. VS2002는 깔려있다고 가정. 2. opencv 다운로드 (https://opencv.org/releases/) -- 여기서는 4.5.5 / windows 버전으로 다운로드함 3. 다운로드한 파일을 실행해서 원하는 경로에 압축을 푼다. -- 여기서는 C:/ 에 그대로 집어 넣음 (C:/opencv) 4. VS2002에서 C++ 프로젝트 생성 -- C++ 소스 파일이 포함되어야 구성에서 C/C++ 항목이 보임 5. 프로젝트 속성 -> 모든 구성 으로 놓고 6. C/C++ -> 추가 포함 디렉터리 -> openCV 헤더 파일 위치 입력 -- 여기서는 (C:\opencv\build\include) 7. 링커 -> 추가 라이브러리 디렉터리 -> openCV 라이브러리 파일 위치 ..

5. JAVA의 접근제한자

1. 자바는 처음부터 객체지향 프로그래밍 언어이다. 그래서 자바는 클래스로 시작해서 클래스로 끝난다. 2. 자바에서는 하나의 클래스마다 하나의 파일을 만드는 것을 추천한다. 3. 하나의 파일에 여러개의 클래스를 넣을 수는 있지만 public클래스는 하나만 넣을 수 있다. 4. 클래스 내부의 클래스를 내부 클래스(inner class) 내부 클래스가 아닌 클래스를 최상위 클래스라고 한다. 5. 최상위 클래스의 접근 지정자로는 public을 쓰거나 생략할 수 있다. private와 protected는 쓸 수 없다. 6. public은 다른 패키지에서 접근 가능한 클래스이고, 생략시 불가능하다. 부모 클래스로도 쓸 수 없다. 7. 즉, 클래스에 대한 접근 지정자는 JAVA와 Cpp가 꽤나 다르다. 8. jav..

반응형