기타/C++

· 기타/C++
기본 문법 #include class C_TEST { private: int m_nData; // 멤버 변수는 m_ 를 붙이자. 단축키 쓸 때 편해짐. public: void setData(int nData); int getData(); }; int main() { } void C_TEST::setData(int nData) { m_nData = nData; } int C_TEST::getData() { return m_nData; } 클래스는 구조체와 네임스페이스의 기능을 모두 갖고 있다. 클래스와 구조체 차이? 구조체는 함수 못 만드는 줄 알았는데, 버전이 올라가면서 만들 수 있다고 한다. 근데 구조체로 함수 만들거면 클래스로 만들자. 가장 큰 차이점은 사용 용도이다. 구조체는 변수에 직접 접근해서 ..
· 기타/C++
기본 문법 #include namespace N_CALCULATION { int add(int nData1, int nData2); int mul(int nData1, int nData2); } int main() { printf("%d\n", N_CALCULATION::add(10, 20)); printf("%d\n", N_CALCULATION::mul(2, 5)); } int N_CALCULATION::add(int nData1, int nData2) { return nData1 + nData2; } int N_CALCULATION::mul(int nData1, int nData2) { return nData1 * nData2; } 네임스페이스는 찾아쓰기 쉬우려고 사용한다. using namespac..
· 기타/C++
기본 문법 #include struct S_DATA { int nData; float fData; }; int main() { S_DATA sData{}; sData.nData = 100; sData.fData = 50.5f; printf("%d\n", nData); printf("%f\n", fData); } 구조체는 변수들을 그룹짓는 것이다. sData.nData = 100; sData.fData = 50.5f; 이렇게 직접 접근해서 값을 바꾸기 때문에, 구조체는 변수가 public 으로 선언된다. 구조체 메모리 사이즈 계산하기 가장 큰 자료형을 기준으로 메모리 공간을 잡는다. int 4바이트, char 1바이트기 때문에 int를 기준으로 메모리를 잡는다. struct S_TEST { int n1; ..
· 기타/C++
c++ 에서 배열을 전달하려면 포인터를 사용하는 방법밖에 없다. 예제를 참고하면서 이해하자. 예제 배열의 총합을 더하는 함수를 만들어보자. #include void totalData(const int *pData, int nLength, int *pTotal); int main() { int arData[5]{ 5,4,3,2,1 }; int nTotal{}; totalData(arData, 5, &nTotal); printf("배열의 총합 : %d\n", nTotal); } void totalData(const int * pData, int nLength, int *pTotal) { *pTotal = 0; for (int i = 0; i < nLength; i++) { *pTotal += pData[i]..
· 기타/C++
기본 문법 [return 자료형] [함수명] (함수 인자) void func(int a, int b) { // 구현 } 동작 원리 #include int func(); // 함수 프로토타입 int main() { int nData{}; nData = func(); // 1. func 자리에 int 임시 변수가 생김 printf("%d\n", nData); } int func() { return 100; // 2. return 값을 복사해서 임시 변수에 저장 } 예시 2개의 수를 입력받아서 더하는 함수를 만들어보자. 여러가지 방법으로 함수 모양을 만들 수 있다. 1. return을 이용해서 결과값을 받는 방법 #include int add(int nData1, int nData2); int main() {..
· 기타/C++
기본 문법 int nData{}; int *p{}; p = &nData; // p는 nData의 주소를 가리킨다. *p = 100; // p가 가리키는 곳에 100을 대입한다. printf("%d\n", nData); // 100 출력 쉽게 이해하기 아래의 예시처럼 바탕화면의 바로가기를 생각하면 포인터를 쉽게 이해할 수 있다. int nData{}; // 실행 파일 int *p{}; // 바로가기 생성 (비어있음) p = &nData; // 바로가기에 실행 파일 경로를 입력 *p = 100; // 바로가기를 통해 실행 파일 경로에 접근 printf("%d\n", nData); // 100 출력 배열을 가리키는 포인터 int arData[5]{ 5,4,3,2,1 }; int *p{}; p = arData;..
· 기타/C++
기본 문법 int arData[10]; // 자료형 변수명[배열크기]; java, c# 처럼 int[10] arData; 였으면 자료형을 알아보는 것이 더 편했겠다. 옛날 언어라서 그런가보다. 참고 사항 1. 개수가 명확할 땐 배열을 쓴다. 2. 배열을 늘리거나 줄이지 말자. 배열이 5칸인데, 7칸으로 늘린다 치면 메모리에서는 2칸을 늘리는 게 아니라 7칸짜리를 새로 만들고, 복사하는 것이다. 5칸짜리는 삭제함. (속도가 느림) 늘리거나 줄일거면 배열말고 다른 거 쓰자. 3. 배열 인덱스 변수를 선언했을 때, -1로 초기화 하지말자. 잘못된 메모리에 접근할 수 있다. (버그 가능성) 초기화는 0으로 하고, 배열의 0번째에는 디폴트 값을 넣어놓자. 가위바위보를 예시로 하면, 0 : 안 냄 1 : 가위 2 ..
푸쿠이
'기타/C++' 카테고리의 글 목록 (2 Page)