본문 바로가기

728x90
반응형

전체 글

(157)
[C++] 클래스, 접근제어지시자(public, private), const 함수 클래스와 구조체 구조체에서 struct를 class로 바꾸기만 하면 클래스의 선언은 끝난다.  구조체struct Pos { double posx; double posy; void ShowCurPos() { std::cout   클래스class Pos { double posx; double posy; void ShowCurPos() { std::cout   구조체와 역할도 동일하다. 여러 개의 변수를 하나의 의미로 묶는 것이다.  또한 클래스에 접근하는 방법도 동일하다. 클래스 변수를 하나 생성해 주고 도트연산자를 통해서 접근할 수 있다.             접근제어 지시자 클래스는 세 가지 접근 제어지시자를 통해서 선언된 함수 및 변수 등의 접근 범위를 제한할 수 있다.  public, protec..
[C++] 구조체 typedef 선언 생략 C++에서의 구조체는 C표준에서의 구조체와 약간 차이가 있다. C표준에서는 구조체 변수를 선언할 때 struct 키워드를 생략하기 위해서 typedef 선언을 추가해야만 했다. 그러나 C++에서는 별도의 typedef 선언 없이도 아래 코드처럼 struct 키워드를 생략하는 것이 가능하다. struct Pos { double posx; double posy; }; int main () { Pos posA; return 0; } 구조체 안에 함수 삽입 또한 C++에서는 구조체 안에서 함수를 선언할 수도 있다. 함수에 접근할 때에는 구조체 변수에 접근하는 것과 마찬가지로 도트연산자를 통해서 접근할 수 있다. 따라서 아래 코드처럼 사용하는 것이 가능하다. #include struct ..
[C언어] 열거형 (enum) 열거형 (enum) 열거형은 const int 자료형을 같은 의미끼리 묶어서 정의할 때 사용된다. 열거형을 정의할 때에는 이름도 같이 정의해주면 열거형 변수를 선언하여 사용하는 것도 가능하다. 그러나 필수는 아니다. 정수이기 때문에 홀로 변수처럼 사용도 가능하며 변수에 대입도 가능하다. 따라서 아래 코드처럼 사용이 가능하다. #include enum DayOfWeek { Monday = 0, Tuesday = 1, Wednesday = 2, Thursday = 3, Friday = 4, Saturday = 5, Sunday = 6};int main(){ enum DayOfWeek week = Monday; int intweek = Tuesday; printf("%d %d %d", Wednesday, we..
[C++] 배열, 동적 할당 (new와 delete) 메모리 할당 new와 delete를 사용하면 malloc와 free를 대체하여 메모리를 할당할 수 있다.  #include #include #include char *MakeStr(int len) { char* str = (char*)malloc(sizeof(char)*len); return str;}int main(){ char* str = MakeStr(20); strcpy(str, "Hello World!"); std::cout  위와 같이 C++에서도 malloc와 free를 사용한 메모리 할당이 가능하다. 그러나 위 방법을 사용할 경우 두 가지 불편한 점이 존재한다. 할당할 대상의 정보를 반드시 바이트 크기로 전달해야 하며 반환형이 void포인터이기 때문에 적절히 형 변환을 해주어야한다.  이때..
[c++] 참조자 참조자 C++에서 참조자를 사용하면 하나의 변수에 여러 개의 이름을 부여하는 것이 가능하다. int num1 = 2000; int &num2 = num1; 위 코드를 보기만 해서는 이해가 잘 안될 수도 있다. C언어에서 분명히 &연산자는 주소값을 나타내는 것이라고 하였는데 주소에 2000을 저장할 수가 있는것일까? 당연히 주소에 2000이라는 정수를 넣는 것은 말이 안되고 이때 &연산자가 다른 의미로 사용이 된 것이다. &가 이미 선언된 변수 앞에 오면 주소를 반환하라는 뜻이지만 새로 선언되는 변수 앞에 올 때에는 참조자의 선언을 뜻하게 된다. 따라서 위의 코드가 실행되면 num2는 num1 의 참조자가 되며 2000이 저장되어 있는 num1의 메모리에는 num2라는 이름도 붙게 되는 것이다. 참조자의 ..
[C++] C++에서 C언어 헤더파일 호출 C++에서 C표준 헤더파일 호출 C++에서 C언어 헤더파일을 호출하는 것도 가능하다. 아래 코드처럼 그냥 include 해도 문제없이 사용이 가능하다. #include #include #include #include 그러나 이것보다는 .h를 빼고 c를 붙여서 다음과 같이 선언하는 것이 좋다. #include #include #include #include 위와 같이 사용하면 .h를 사용했을 때 보다 C++에 최적화된 함수들을 사용할 수 있다. 예를 들어 C표준에서 abs 함수는 다음과 같이 선언되어 있다. int abs(int num); 그러나 C++에서는 다음과 같이 오버로딩이 되어 있다. long abs(long num); float abs(float num); double abs(double num..
[C++] 인라인 함수 (inline function) 인라인 함수 인라인 함수는 C언어에서의 매크로함수의 장점만을 가져온 함수라고 할 수 있다. 매크로 함수는 일반적인 함수에 비해 실행속도가 빠르지만 정의하기 어려우며 복잡한 함수의 정의에 한계가 있다. 따라서 인라인 함수를 사용하면 정의하는 것은 어렵지 않으면서도 실행속도는 빠르게 할 수 있다. 인라인 함수를 사용하고 싶으면 함수를 선언할 때 inline 지시자를 명시해 주면 된다. inline int SQUARE(int x) { return x*x; }
[C언어] 헤더파일, #include의 활용 헤더파일 헤더파일을 include 하는 방식에는 2가지 방법이 있다. 첫 번째는 를 사용하는 방식이고 두 번째는 ""를 사용하는 방식이다. 첫 번째 방식을 사용하면 표준 헤더파일이 저장되어 있는 디렉터리 안에서 파일을 찾게 된다. 따라서 이 방식은 #include 와 같이 표준 헤더파일을 include 할 때 사용된다. 두 번째 방식을 사용하면 기본적으로는 소스파일이 저장된 디렉터리 안에서 헤더파일을 찾는다. 이때 헤더파일의 이름과 함께 절대경로를 명시하여 include 하면 헤더 파일이 어디 있던 사용이 가능해진다. 따라서 두 번째 방식은 사용자가 정의한 헤더파일을 포함시킬 때 사용된다. 헤더파일은 마치 매크로와 같은 역할을 한다. 해당 부분을 헤더파일이 완벽히 대체하게 되는 것이다. 따라서 아래와 같..

728x90
반응형