💻 개인공부 💻/C | C++ 23

[C++] 연산자 중복 (feat. 프랜드 함수)

출처 => C++ How to Program (Detitel / Prenticehall) / 현재 그리고 미래지향적인 C++ 프로그래밍(장석우, 임정목 / 비앤씨에듀케이션) https://beomnaegol.tistory.com/entry/C-%EC%97%B0%EC%82%B0%EC%9E%90-%EC%98%A4%EB%B2%84%EB%A1%9C%EB%94%A9-3-%EC%A0%84%EC%9C%84%EC%A6%9D%EA%B0%90%EA%B3%BC-%ED%9B%84%EC%9C%84%EC%A6%9D%EA%B0%90 http://blog.daum.net/coolprogramming/73 연산자 중복의 정의 ▶ 연산자 중복이랑 C++에서 제공하는 기본 타입이 아닌 클래스 타입(사용자가 정의하는 타입)에도 연산자를 사..

[C++] 프랜드 함수

출처 => C++ How to Program (Detitel / Prenticehall) / 현재 그리고 미래지향적인 C++ 프로그래밍(장석우, 임정목 / 비앤씨에듀케이션) https://wowon.tistory.com/125 프랜드 함수란 무엇인가? ▶ C++에서는 크게 세 가지의 접근 지정자가 있다. 모든 곳에서 사용이 가능한 public, 클래스 내부와 상속받은 클래스에서 사용 가능한 protected, 그리고 선언된 클래스 내부에서만 선언이 가능한 private. ▶ 프랜드 함수는 다른 클래스에서는 사용할 수 없는 private 형의 멤버를 사용할 수 있도록 해주는 함수이다. ▶ 프랜드 함수로 초대되는 3가지 유형이 존재한다. 1. 클래스 외부에 선언된 전역함수 2. 다른 클래스의 특정 멤버 함수..

[C++] 생성자와 소멸자

출처 => C++ How to Program (Detitel / Prenticehall) / 현재 그리고 미래지향적인 C++ 프로그래밍(장석우, 임정목 / 비앤씨에듀케이션) 생성자 (Constructor)란 무엇인가? ▶ 클래스는 생성자라는 멤버함수를 사용해서 객체를 초기화시켜준다. 복잡한 구조를 가져서 클래스에 일일이 대입하는 거이 곤란하므로 멤버에 값을 부여하는 일을 생성자가 한꺼번에 처리하여 준다. ▶ 생성자는 클래스의 이름과 동일한 이름을 가진 함수이다. ▶ 생성자는 객체가 만들어질 때 자동적으로 호출되어 객체를 초기화 시키는 역할을 한다. 생성자를 이용한 객체 초기화 예제 아래와 같은 소스코드를 보자 이 소스코드에서의 생성자라고 할 수 있는 Hello()메소드를 보면, int형의 num, 그리고..

[C++] 포인터 변수 (feat. * / & / **)

포인터 변수란 무엇인가? ▶ 포인터변수란 data가 저장되어있는 메모리의 시작주소를 값으로 갖는 변수이다. ▶ 와 같은 형식으로 선언한다. ▶ 주소를 얻어오기 위해서는 '&' 연산자를 변수 앞에 붙인다. ▶ 주소가 주어졌을 때, 그 주소가 가리키는 곳의 값을 얻어오기 위해서는 *연산자를 사용한다. #include using namespace std; void main() { int x = 100; int *xp = &x; // 포인터 변수 xp에 x가 저장되어있는 메모리의 시작 주소값을 저장합니다. cout

[C++] 포맷 플래그

출처 => C++ How to Program (Detitel / Prenticehall) 포맷 플래그란? 포맷 플래그의 종류는? ▶ 포맷플래그는 C언어에서의 printf().와 유사한 역할을 한다. 포맷 입출력 방법에는 3가지가 있는데 포맷 플래그, 포맷 함수, 그리고 조작자 이다. 이 세 가지에 대하여 오늘은 알아보려고 한다. 1-1. 포맷 플래그 ▶ 입력스트림에서 입출력 형식을 지정하기 위한 플래그이다. ios클래스에서 정의된 포맷 플래그는 아래의 표와 같다. 그리고 아래에 있는 표는 포맷 플래그를 세팅하는 멤버함수들이다. setf()메소드는 플래그를 실행하는 역할, unsetf()메소드는 플래그 실행을 해제하는 역할을 한다고 보면 된다. cout.unsetf(ios::dec) cout.setf(io..

[C++] vector Container

출처 => C++ How to Program (Detitel / Prenticehall) / 현재 그리고 미래지향적인 C++ 프로그래밍(장석우, 임정목 / 비앤씨에듀케이션) 배열 vs Vector 차이점 비교 Vector 클래스의 주요 멤버와 연산자 Vector를 이용한 예제 1. vector 컨테이너 활용 예제 #include #include using namespace std; void main() { vectorv; //정수만 삽입 가능한 벡터 생성 v.push_back(1);//벡터에 정수1 삽입 v.push_back(2);//벡터에 정수2 삽입 v.push_back(3);//벡터에 정수3 삽입 for (int i = 0; i < v.size(); i++) { cout

[C++] C++에서의 배열 선언

JAVA에서의 배열 선언 나는 프로그래밍 언어를 JAVA로 시작하였기 때문에 JAVA가 편하다. 그래서 C++을 사용할 때 헷갈려서 불편하곤 한다. 특히 '배열'을 선언할 때 불편하다. 먼저 JAVA에서의 배열 선언이다. int [] Array =new int [3]; 만약 배열의 크기가 정해지지 않았다면 다음과 같이 설정하면 된다. Scanner scan=new Scanner (System.in); int n=scan.nextInt(); int [] Array = new int [n]; 2차원 배열도 위의 방법과 같이 생성 할 수 있다. Scanner scan=new Scanner(System.in); int m=scan.nextInt(); int n=scan.nextInt(); int [][] Arr..

[C++] 가상함수 상속을 이용하여 값을 변환해주는 클래스 작성

1. 문제 2. 요구사항 분석 1. 가상 함수를 가지는 부모 클래스를 생성 2. 단위를 나타내는 string형식의 문자 선언 3. 반환하려는 값 double형으로 선언 4. 원을 달러로 바꾸어주는 클래스인 WonToDollar클래스 선언(Converter 클래스 상속) 5. Km를 mile로 바꾸어주는 클래스인 KmtoMile클래스 선언(Converter클래스 상속) 6. 환율 입력 7. 환율을 바탕으로 원을 입력하면 이를 달러로 변환하여 출력 8. Km를 입력하면 이를 mile로 변환하여 출력 3. 클래스 설계도 4. 프로그램 설계도 5. 소스코드 #include using namespace std; class Converter { protected: double ratio; //비율, 여기서는 1달러..

[C++] 다중상속을 이용한 연산 프로그램(feat. public 다중상속)

1. 문제 2. 요구사항 분석 1. Cal클래스 생성 2. 계산의 결과를 출력하는 double(나눗셈이 있으므로)형태의 메소드인 calc()를 생성 3. 이를 public형태로 상속받는 adder, subtractor, multiplier, divider클래스 생성 4. divider클래스 생성시 나누는 수가 0인 경우를 고려 3. 클래스 설계도 4. 프로그램 설계도 5. 소스코드 #include #include using namespace std;//모든 cin,cout에 std를 쓰지 않기 위해 작성 class Cal {//Cal 클래스 작성 void input() { cout a >> b; } protected: //protected, 선언된 클래스와 이를 상속하는 클래스에서만 사용가능 int a,..