노력과 삽질 퇴적물
문자열 출력 strcpy() char str1[]; char str2[] = "문자배열로도도 덮어지기 가능."; strcpy(str1, "새로 덮어씌워지는 문자열"); strcpy(str1, str2); strcat() char str3[] = "가나다라"; char str4[] = "마바사아"; strcat(str3, str4); // -> str3을 출력시, 가나다라마바사아 숫자변환 int atoi (const char *nprt); -> int n1 = atoi("1234"); //n1 = 1234; long atol (const char *nprt); -> long n2 = atil("-1234567"); float atof (const char *nprt); -> float n3 = atof("..
목표. 솔루션내 프로젝트들을 소스, 라이브러리, 문서등을 폴더별로 분할시킨다. 개발시 라이브러리나 기능추가가 편하게 프로젝트를 설정한다. 빌드나 소스등을 폴더별로 분산시켜서 멀티플랫폼 컴파일이 가능하게 한다. 1. 새 프로젝트 -> win32 콘솔응용 프로그램 -> 정적 라이브러리 2. 용도별 폴더 분산 및 정리 -> 솔루션내 프로젝트 삭제: 솔루션과 프로젝트의 연결해지인 '논리적 제거' -> 비쥬얼 스튜디어를 잠시 종료한채로 폴더를 정리하고, 솔루션 폴더내 기본폴더, *.sln, .suo를 build폴더에 넣는다. 다음의 폴더구성은 절대적인것이 아닌 참고사항이다. bin폴더 : 내부에 bin\Debug와 bin\Release로 구성. bin\Debug\*.dll bin\Debug\*.lib bin\Re..
환경: Visual Studio 2008 32비트 *.CPPCPP기준입니다. 1. 필요한 파일 -> 또는 openGL공식 홈페이지 -> 윈도우7같은경우, system32폴더를 우클릭해서 '모든권한얻기'를 해두셔야 원활한 파일복사가 됩니다. ① opengl_dll 폴더 C:\WINDOWS\system32\ glut.dll glut32.dll ② opengl_header 폴더 C:\Program Files\Microsoft Visual Studio 9.0\VC\include\GL\ GL.h GLAUX.h GLU.h glut.h ③ opengl_lib 폴더 C:\Program Files\Microsoft Visual Studio 9.0\VC\lib\ GLAUX.lib GLU32.lib glut.lib glut..
1. 스트림 => 좌인우출(?) = 좌측에서 흘러 들어가고, 우측에서 흘러 나간다. cin >> ... >> endl; cout 일부 이름만 접근 및 참조가능. ③ using 사용법2 using namespace std; namespace new_space명 { ...이름공간_멤버변수...; ...이름공간_멤버함수()...; } ... using namespace new_space명;=> 이름공간내 모든 이름을 접근가능. ④ 이름없는 이름공간 #include int main() { cout
1. 인라인 함수(inline 함수) inline 반환타입 function(...) { ...; } int main(...) { function(...); ...; function(...); ...; ...; } => inline예약어 사용. => main함수 앞에 구현 + main내 == (컴파일) main함수에 호출횟수만큼 삽입해서 처리. => 보통의 함수는 아웃라인 함수(outline function)방식. => 사용시, 함수호출에 대한 오버헤드가 커서, 호출횟수가 적은 함수에 유리. => 함수내 반복이 있으면 인라인 함수 불가. => 생명주기: 정의~파일종료. 2. 친구함수(friend 함수) 3. this => 객체 어드레스가 들어있는 포인터 변수.
=> virtual키워드(예약어)를 함수선언시 맨앞에 붙인다. => 추상클래스: 클래스 선언부에 순수가상함수가 1개 이상 있는 클래스. 객체생성 불가. => 동적바인딩 class parrentClass { public: virtual 반환타입 함수1(...인수...); //가상함수 virtual 반환타입 함수2(...인수...) = 0; //순수가상함수. 해당클래스를 자동으로 추상클래스 ...; }; class childClass1 : 액세스_지정자 parrentClass //
객체지향 프로그래밍(OOP) = 캡슐화 + 다형성 + 상속 부모클래스{부모_클래스멤버} class parentClass { public: ...부모형질_가...; private: ...부모형질_나...; protected: ...부모형질_다...;}; 자식_클래스 : 엑세스_지정자 부모_클래스{ 자식_클래스멤버} class childClass : 액세스_지정자 parentClass { public: ...신규형질_A...; private: ...신규형질_B...; protected: ...신규형질_C...;}; ↓↓↓ (상속처리. 여기선 public으로 예) ↓↓↓ //실제로 구동되는 형태 class childClass : public parentClass { public: ...부모형질_가...; //..