본문 바로가기

c++변수9

C++ 12장 [함수객체] ▣ 안녕하세요. 이번장에서는 함수를 호출할 때 매개변수를 객체로 전달하는 코드를 공부해보도록 하겠습니다. ▣ 클래스의 소멸자와 생성자를 각각 지정해주고 메인 함수에서 객체를 정의한 다음에 디버그를 하면 이렇게 클래스 생성 시 생성자와 소멸자가 호출되는 걸 확인할 수 있습니다. 이번에는 클래스 멤버함수가 아닌 따로 함수를 만들고 그 함수의 매개변수에 클래스 객체를 전달하는 코드를 작성해보겠습니다. ▣ 코드를 작성했다면 이제 코드를 살펴보겠습니다. sum(cal) 코드를 살펴보면 sum()이라는 함수에 매개변수에 cal 클래스 객체를 전달했습니다. 그럼 클래스가 전달됩니다. 여기서 중요한 건 그 클래스의 생성자는 호출되지 않고 소멸자만 호출된걸 확인할 수 있습니다. 그 이유는 전달 받은 원본의 클래스 객체의.. 2022. 11. 3.
C++ 5장 [클래스3] ▣ 안녕하세요. 이번장에서는 클래스 3번째 시간으로 소멸자를 공부해보도록 하겠습니다. ▣ 소멸자는 객체가 소멸되는 시점에서 자동으로 호출되는 클래스 멤버 함수를 의미합니다. 저번장을 이어서 복습하면 생성자는 객체가 생성되었을 때 소멸자는 소멸되었을 때 호출하는 멤버 함수들입니다. 소멸자를 만들려면 클래스 이름 앞에 ~ 기호를 붙여야 합니다. 또 소멸자는 한 개만 존재해야 합니다. 만약 소멸자가 선언되지 않으면 기본 소멸자가 자동으로 생성됩니다. 그리고 소멸자는 리턴 타입이 없습니다. 생성자처럼 반환형이 없다는 의미입니다. 소멸자의 목적은 마무리 작업을 할 때 사용합니다. 그럼 코드를 작성하며 공부해보겠습니다. ▣ 소멸자를 생성하려면 ~Calculator() 코드에서처럼 클래스 앞에 ~ 기호를 넣으시면 됩.. 2022. 10. 7.
C++ 4장 [클래스2] ▣ 안녕하세요. 이번장에서는 클래스에 생성자에 대해 공부해보도록 하겠습니다. 생성자는 클래스가 객체로 생성될 때(정의할 때) 자동으로 실행되는 함수(생성자)라고 생각하시면 됩니다. 생성자는 오직 한 번만 실행합니다. 생성자 함수의 이름은 클래스 이름과 동일하게 작성해야 합니다. 생성자 함수의 반환형(리턴 타입)을 선언하지 않습니다. 단 함수에 매개변수는 넣을 수 있습니다. ▣ 생성자를 쓰는 이유는 객체가 생성될 때 필요한 초기화 작업을 하기 위함입니다. 이제 생성자를 코드로 공부해보겠습니다. ▣ 생성자 함수는 Calculator::Calculator()처럼 클래스와 동일하게 이름을 지정해주면 됩니다. 여기서 중요한 건 일반 함수와 다르게 반환형이 없는 점 주의해주세요. 코드를 다 작성하셨다면 이제 메인 .. 2022. 10. 6.
C++ [ctype, is키워드, 종류 판단함수] ▣ 안녕하세요. 이번장에서 ctype.h에 있는 문자의 종류를 판단하는 함수를 공부해보겠습니다. ▣ 우선 #include 헤더를 추가합니다. 헤더 이름 앞부분에 c를 붙이면 c언어에서 사용한 헤더라고 생각하시면 됩니다. cin.get(str) 함수를 사용하여 문자를 입력받습니다. 그리고 밑에 cin.get() 쓰는 이유는 버퍼에 남아 있는 \n 엔터를 지우기 위함입니다. 저게 없으면 계속 입력을 받을때 엔터가 버퍼에 남아있어 두 번 입력을 받는 게 됩니다. ▣ if문 조건문 안에 isalnum, isalpha, isblank함수를 넣어 10진수라면, 알파벳이라면, 스페이스나 탭이라면 반환형을 1 또는 0으로 주기 때문에 이렇게 결과가 나옵니다. 꼭 직접 확인해보세요. ▣ 그리고 islower, isupp.. 2021. 12. 1.
C++ [논리연산자, and, or, not] ▣ 이번장에서는 논리 연산자를 간단하게 공부해보도록 하겠습니다. C언어에서는 논리연산자를 &&, ||,! 기호로 사용했습니다. 하지만 이건 큰 문제가 될 수 있습니다. 왜냐하면 세계 모든 키보드자판에 형식이 같지 않기 때문에, &, |, ! 을 지원하지 않는 키보드가 있을 수 있습니다. 그렇기 때문에 C++에서는 &&, ||,! 논리 연산자를 다르게 사용합니다. ▣ && 연산자는 and로 || 연산자는 or로 ! 연산자는 not으로 합니다. ▣ 이렇게 and or 모두 값을 확인해보세요. 이제 입력을 받아서 조건문에 논리연산자를 모두 사용해서 만들어보세요. 2021. 11. 24.
C++ [형변환, 상수, 매크로, casting] ▣ 안녕하세요. 이번장에서는 형 변환(casting) 그리고 상수에 대해 공부해보도록 하겠습니다. ▣ char 형으로 x 라는 변수를 'A' 문자 값을 넣고 정의합니다. 그리고 cout 으로 x를 출력했을 경우 (int) x, int(x)를 출력한 걸 확인해보겠습니다. 그럼 x는 문자 그대로 A가 출력되고 casting 한 두 변수는 65 아스키코드 숫자 값이 나오는 걸 확인할 수 있습니다. C언어에서와 동일하게 강제형변환을 하려면 (int)를 사용하여 진행했지만 C++에서는 int() 조금더 직관적으로 코드를 작성할 수 있습니다. ▣ 이렇게 float형식을 int() 형으로 강제 형변환(casting)하여 출력하면 바뀌는 걸 확인할 수 있습니다. ▣ 이번에는 매크로와 상수를 만드는 방법을 간단하게 해보.. 2021. 10. 22.
C++ [bool, 데이터자료형] ▣ 안녕하세요. 이번장에서는 C++에서의 bool 자료형에 대해 공부해보도록 하겠습니다. ▣ bool 자료형은 변수의 자료형들 중에 하나입니다. int 형은 정수형, float 형은 실수형 이런 식으로 자료형이 있듯이 bool 형은 true(1), false(0)를 저장하는 형식에 자료형이라고 생각하시면 됩니다. ▣ 변수를 선언할 때 bool 자료형으로 지정을 하고 값을 true, false로 각각 대입을 하고 출력을 해보겠습니다. 그러면 1과 0이 출력되는 걸 확인할 수 있습니다. ▣ 그럼 1과 0이 아닌 true와 false 값을 출력하는 코드를 진행해보겠습니다. 그러기 위해서는 cout으로 boolalpha로 코드를 작성한 후에 bool 값이 있는 변수를 출력합니다. 그러면 true, false값으.. 2021. 10. 21.
C++ [namespace, 네임스페이스] ▣ 안녕하세요 이번장에서는 네임스페이스를 공부해보겠습니다. 네임스페이스는 쉽게 정의하면 동일한 이름으로 변수나 함수, 배열 등을 사용할 때 소속을 지정해 그걸 구분하기 위한 키워드라고 생각하시면 됩니다. 그럼 간단한 코드를 통해서 하나하나 공부해보겠습니다. ▣ 공부하기 전에 꼭 전역 변수, 지역변수를 공부하고 시작해주세요. ▣ num이라는 변수를 두가지 형식으로 정의했습니다. 하나는 전역변수 하나는 지역변수입니다. main에서 같은 이름에 num을 출력해보면 지역변수를 출력하는 걸 확인할 수 있습니다. 다시 말해 함수 안에 있는 지역변수가 우선순위로 접근한다라는 걸 확인할 수 있습니다. 그럼 전역변수를 접근하려면 어떻게 해야 할까요 ▣ :: 연산자를 사용하여 ::num을 하게 되면 전역 변수를 접근하게 .. 2021. 7. 16.
C++ [for문, 포인터, 레퍼런스변수] ▣ C언어에 for문 형식입니다. (초기식, 조건, 증감) 이렇게 for문 함수 형식으로 C++에서 사용할 수 있습니다. 그리고 C++에서의 for문 스타일도 존재합니다. ▣ for( 변수 : 범위 ) 에 형식으로 for문을 작성할 수 있습니다. 그럼 범위에 넣었던 aList에 하나하나에 요소에 값을 변수에 하나씩 대입을 합니다. 그리고 그 범위가 끝날때까지 반복을 하는 형식입니다. ▣ 이번에는 for문을 이용하여 배열에 값들에 +1씩을 더하는 코드를 작성해보겠습니다. 하나하나 요소를 접근하여 i++를 하고 다시 for문을 활용하여 출력을 해보면 값이 하나도 안바뀌어 있는걸 확인할 수 있습니다. ▣ 우리가 여기서 생각해야할 부분은 for에 있는 (int i입니다. for() 이렇게 괄호가 있으면 함수이기.. 2021. 7. 9.