본문 바로가기

Language, IDE

(50)
[C++] 템플릿(template) C++에서는 템플릿(template)을 제공한다. 템플릿(template)은 형판, 견본, 본보기라는 뜻으로 C++에서도 함수나 클래스를 정의할 때 타입에 대한 틀을 제공해준다. 함수나 클래스에서 각 타입에 대한 정의를 일일이 작성하지 않고 템플릿을 사용함으로써 코드에 효율성을 준다. 변수 타입만 다른 함수에 대해 템플릿을 사용하면 타입을 미리 지정해주지 않아도 사용시에 컴파일러가 그 타입에 대한 정의를 오버로딩 해준다. 템플릿을 사용하지 않으면 코드가 매우 비효율적이 된다. 예를들어 다음을 생각해보자. void swapValues(int& value1, int& value2) { int temp; temp = value1; value1 = value2; value2 = temp; } 위와같은 int형 ..
[C++] 상속 (inheritance) C++에서는 상위 클래스로부터의 상속을 제공한다. 상속(inheritance)은 일반적인 뜻의 상속처럼 한 클래스로부터 멤버함수와 멤버변수를 물려받게 되는것을 말한다. 물려주는 클래스를 부모 클래스(parent class)또는 슈퍼 클래스(superclass)또는 기반 클래스(base class)라고 한다. 그리고 물려받는 클래스는 자식 클래스(child class), 혹은 부 클래스(subclass)또는 파생 클래스(derived class)라고 한다. 상속받은 클래스를 다시 상속받을 수 있고 여러 클래스로부터 상속을 받을수도 있다. 상속받은 클래스를 다시 상속받는 것은 일반적이지만 여러 클래스로부터 상속을 받는 것은 안전하지 않을 수 있다. 여러 클래스로부터 상속받는 것을 다중 상속이라고 하는데 이렇..
[C++] 파일 입출력 C++ 파일 입출력 C++에서는 파일 입출력 스트림을 제공한다. 입출력 스트림을 사용하기 위해서는 라이브러리가 필요하다. #include #include using namespace std; int main() { //파일 입력 ifstream inf("test.txt"); // 입력 파일 열기 string inStr; inf >> inStr; //입력 inf.close(); //닫기 //파일 출력 ofstream outf("outFile.txt"); // 출력 파일 열기 outf > inStr; //inStr을 배열,vector,list등에 저장 } inf.close(); return 0; }
[C++] getline 함수 C++에서는 라인을 통째로 읽어오는 라인 입력 함수 getline 함수가 있다. getline함수는 2가지가 있다.1. getline함수는의 cin과 의 ifstream의 멤버 함수2. 에 정의되어있는 getline 함수 1. getline함수는의 cin과 의 ifstream의 멤버 함수cin의 getline함수와 ifstream의 getline함수는 c스트링인 char*를 받을 수 있다.i) cin.getline(char*, bufferSize)char cstr[512]; cin.getline(cstr,512); 최대 bufferSize(512)만큼 cstr에 값을 키보드에서 입력받는다. ii) ifstream의 객체.getline(char* bufferSize)ifstream inf("test.txt..
[C++] string to char array(c스트링), char array to string string 에서 char array(C스트링)으로 변환하기 - string to char array string의 c_str()을 사용한다. string str = "hello"; char cstr[10]; strcpy(cstr,str.c_str()); char array의 초기화문에서는 사용할 수 없고 assign문(=)도 사용할 수 없다. 아래 포스트 참조 [C/C++] C스트링 char array(C 스트링)에서 string으로 변환하기 - char array to string string에 그냥 char array를 assign(=) 하면된다. char cstr[] = "hello"; string str = cstr; string to char array, string to array, stri..
[C++ STL] C++ String(스트링) C++에서는 STL에서 제공하는 스트링(String) 클래스를 제공한다.string 클래스는 라이브러리에 포함되어있고 string은 std에 규정되어 있으므로 네임스페이스 std를 추가해주어야 한다. #include using namespace std; STL에서 제공해주는 이 string 클래스는 클래스지만 입출력 연산자 와 인덱스 []연산자,연결하는 +연산자, ==연산자등 다양한 연산자가 정의되어있어 프로그래머가 일반 변수처럼 사용할 수 있다. 그리고 string은 클래스이기때문에 .empty(), at(i)와 같은 멤버 string 함수 또한 사용할 수 있다. 생성인자가 없는 생성자, string str; const char arrayt인 "hello"를 인자로 가지는 생성자string str("h..
[C/C++] C/C++에서의 bool (true, false) C/C++에서의 bool C/C++에서의 boolean C/C++에서의 true false C/C++에서 0이면 거짓(False), 0이 아니면 참(true)이다. 따라서 아래와 같은 코드에서 if('a') { printf("true"); } if('1') { printf("true"); } if("a") { printf("true"); }세 코드 모두 if 문에서 true가 되어 안의 printf문이 실행된다. 문자열이나 문자의 경우는 아스키값으로 처리되므로 아래와 같은코드에서도 printf문이 실행된다. if('0') { printf("true"); } if("0") { printf("true"); } 아래와 같은 코드에서만 if문이 false로 printf문이 실행되지 않는다. if(0) { pri..
[C/C++] 문자 조작 함수3 라이브러리에는 문자를 조작하는 함수들이 있다. 대문자를 소문자로 바꿔주거나 소문자를 대문자로 바꿔주는 함수나 해당 문자가 어떤 문자인지를 판별할 수 있는 함수들이 있다. 문자 하나를 다뤄주는 함수이므로 문자열을 다루러면 반복문으로 문자하나당 적용하여야 한다. 9. ispunct공백문자, 숫자, 알파벳을 제외한 프린트가 가능한 문자면 0이 아닌 수(true)를 아니면 0(false)를 리턴한다. 10. isprint프린트가 가능한 문자이면 0이 아닌수(true)를 아니면 0(false)를 리턴한다. 11. isgraph공백문자를 제외한 프린트 가능한 문자이면 0이 아닌 수(true)를 아니면 0(false)를 리턴한다. 12. isctrl컨트롤 문자이면 0이 아닌 수(true)를 아니면 0(false)를 ..