본문 바로가기

스터디/C++

(11)
C++ 에서 Reflection 을 지원하지 않는 이유 java나 C# 에서는 reflection 을 지원한다.하지만 C++에서는 reflection 을 지원하지 않는데,그 이유는 C#, Java C++primitive type class 있음 class 없음 (사용자 정의로 만들 수 있는 타입을 제외한 모든 타입. char, int 등) C#과 Java는 프리미티브 타입에 대한 클래스를 만들어 놓아서 상호 호환이 가능하다.하지만 C++에서는 그 클래스를 만들어 놓지 않아 호환이 되질 않는데, 왜 없는 걸까C#이나 Java는 타입에 대한 크기가 이미 결정되어 있다.하지만 C++은 결정되어 있지 않기 때문에, (머신 마다 크기가 다름 32bit,64bit 등)클래스를 만들지 못한다. (타입의 종속 X)--> C++ 의 목표는 자기보다 낮은 레벨의 언어를 만들지..
20150114 스터디 정리 비쌈 메모리 최적화가 중요하다.Ex) fopen() 후 fclose() 를 해줘야함.물론 묵시적으로 프로그램이 종료되면 메모리가 반환되지만, 서버일 경우 죽지 않게 코딩하는 것이 목적이므로 fclose() 같은 메모리 반환은 중요하다. C 에서는 fopen 에 인자로 'w','r' 같이 읽기/쓰기를 구분하지만C++ 에서는 ifstream, ofstream 으로 구분한다. (함수명으로 구분한다.) cout
내용정리 1 에러의 종류 + Compile-time errors – Syntax errors – Types errors+ Link-time errors+ Run-time errors – Detected by computer (crash) – Detected by library (exceptions) – Detected by user code+ Logic errors – Detected by programmer (code runs, but produces incorrect output)프로그램에서는 항상 프로그래머가 원하는 입력값만이 들어오지 않는다. 입력값 검증은 필수이다.소스에서 area 라는 함수, (인자값 두개를 곱해 넓이를 구해주는 함수)가 있을 때, 인자값이 음수일경우, 넓이가 음수일 수는 없으므로, 이때 ..