본문 바로가기

C++

(15)
16.맵(map) 1. map .h #pragma once #include #include using namespace std; class Test01 { private: map_map; //1. map::iterator_mapn; //2. public: Test01(); ~Test01(); }; 1. map 2. 이터레이터 선언 .cpp #include "Test01.h" Test01::Test01() { //1. _map.insert(pair(1,"하나!")); _map.insert(pair(2, "둘!")); _map.insert(pair(3, "삼!")); _map.insert(pair(4, "넷!")); _map.insert(pair(5, "오!")); _map.insert(pair(6, "여섯!")); } Te..
14.템플릿(template) 1. 템플릿 .h #pragma once #include template //1. class Test01 { private: T1 t1; T2 t2; public: Test01(T1 t11, T2 t22); //2. T1 GetTest01T1() { return t1; } T2 GetTest01T2() { return t2; } }; template inline Test01(T1,T2)::Test01(T1 t11,T2 t22):t1(t11),t2(t22)//3. { }; 1. 템플릿 선언 2. 생성자 선언 3. 생성자 정의 및 매개변수의 값으로 t1과 t2를 초기화 inline : 클래스 내부 함수에 사용 가능한 함수. 짧은 함수에 사용하면 실행속도가 빨라진다함 .cpp #include "Test01.h..
13.getter, setter 1.Test01.h #include using namespace std; class Test01 { private: string str; int iNum; float fNum; public: Test01(int iNum1,float fNum1,string str1);//생성자(int 변수,float 변수,string 변수) ~Test01(); int getiNum() { return iNum; }//이것들이 getter float getfNum() { return fNum; }//이름 앞에 get을 붙여준다. 강제성은 아니지만 문법! string getStr() { return str; }//private이라 다른곳에선 확인 불가능한걸 확인시켜준다. void setiNum(int i) { iNum = i..
12. 클래스의 상속 , 오버로딩과 오버라이딩 1. 클래스의 상속 클래스 추가에서 아래 기본 클래스에 클래스를 넣어 간단하게 상속 가능! 2-1.상속 선언. Test02.h #pragma once #include "Test01.h" // 부모클래스인 Test01을 #include로 선언 class Test02 : public Test01 // : public Test01 이 문장으로 상속 완료 { public : }; 1. 아무것도 하지 않음 2-2 Test02.cpp #include "Test02.h" 1. 아무것도 넣지 않았다. 2-3 main #include #inlcude"Test02.h" // 부모클래스인 01는 선언할 필요 없음 void main() { Test02 t; } 1. Test02의 객체를 선언. Test02엔 아무것도 넣지 않..
11. 클래스, 접근제어자 ,생성자 소멸자 1. 정적 할당과 동적 할당. #include"MainGame.h" // #include로 헤더 선언. 기본적으로 있는 것 말고 //따로 만든건 가 아니라 ""로 표기 void main() { //정적 할당. //런타임 도중 삭제 불가(컴파일러 이전 단계에서 메모리를 잡고 들어옴) // 스택 영역에 메모리 잡힘. MainGame mg1; MainGame mg2; MainGame mg3; //생성이 mg1 mg2 mg3 순으로 생성이 되는데 //소멸도 mg1 mg2 mg3 순으로 소멸이 됨. //이를 후입선출,스택,LIFO(Last In First Out) 이라 함. //반대로 선입선출도 있는데 그걸 큐,FIFO(First in First Out) 이라 함. //동적 할당. //컴파일러 끝나고 메모리를 힙..
10. 문자열 함수 1. 문자열 길이 반환 strlen(문자열 길이를 잴 변수) // 문자열의 길이를 재줌 char str[64] = "hello!" int num = strlen(str); 1. int num 에 반환될 수는 6 이다. 2. char는 1바이트여서 문자 하나를 담을 수 있는데 3. 문자열을 담기 위해서 배열을 사용해줌. 4. 참고로 문자열이 6이라고 str[64]를 str[6]으로 바꿀경우 오류가 생김. 5. 이유는 hello는 6개를 소모하지만 마지막 문자열을 끝낼때 null값을 넣는다. 6. 그렇기에 필요 배열은 문자열 +1 2. 문자열 비교 strcmp(비교할 변수1 , 비교할 변수2) // 문자열 두개를 비교해줌. char str1[64] = "abc"; char str2[64] = "abd"; i..
9. (간단한)포인터 포인터 int i = 1; int*j; // int 포인터 j j = &i; //j 에 i의 주소값을 저장 *j = 9; // i의 주소값을 가리키는 j에 9를 넣음 std::cout
8. 함수 함수 1. 함수 #include //함수 void main(x,y) { } 1. void의 자리엔 함수가 모든 일을 끝내고 반환할 데이터타입, 반환 타입을 넣음 2. main 의 자리엔 함수의 이름. main은 하나밖에 못만듬. 3.(x,y) 의 자리엔 매개변수(parameter)가 들어감 x,y가 매개변수. 2. 비반환 함수 void main() { } //비반환 함수. 1. 종료 후 반환하는 값이 없음. 3. 반환형 함수 int Attack(int hp, int atk) { hp -= atk return hp; // 값을 반환함. } void main() { int hP = 50; int aTk= 10; hp = Attack(hP,aTk); } 1. hp = Attack(hP,aTk); 2. Atta..