C++

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

[C++] 함수와 참조 (feat. &, 별명)

출처 => C++ How to Program (Detitel / Prenticehall) / 현재 그리고 미래지향적인 C++ 프로그래밍(장석우, 임정목 / 비앤씨에듀케이션) 함수의 인자 전달 방식 ▶ 프로그래밍에서 함수를 사용할 때 변수, 즉 인자는 거의 필수 불가결하게 사용이 된다. 인자, 혹은 이 매개변수는 어떤 식으로 불러와서 사용이 되는걸까? 2가지의 방법이 있는데 값에 의한 호출과 주소에 의한 호출로 나뉘어진다. 값에 의한 호출로 객체 전달 ▶ 순서는 다음과 같다. 1. 함수를 호출하는 쪽에서 객체를 전달한다. 2. 함수의 매개 변수 객체 생성, 매개 변수 객체의 생성자는 호출되지 않는다. 3. 함수 종료, 매개 변수 객체의 소멸자를 호출한다. ▶ 값에 의한 호출 시, 매개 변수 객체의 생성자는..

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

[C++] string 클래스 (feat. copy, getline, substr, find, replace)

출처 => C++ How to Program (Detitel / Prenticehall) / 현재 그리고 미래지향적인 C++ 프로그래밍(장석우, 임정목 / 비앤씨에듀케이션) string 클래스 ▶ C++에서 변수를 선언할 때 'c'는 char형으로, "string"은 string형을 자료형을 선언하여 준다. 여기서 "string"과 같은 자료형이 string인 변수들은 string클래스의 객체이다. ▶ 그렇다면 string클래스란 과연 무엇인가? #include using namespace std; ▶ string 클래스는 헤더 파일에 선언을 하여 사용한다. ▶ 다양한 문자열 연산을 실행하는 연산자와 멤버 함수를 포함한다. ▶ 문자열, 스트링, 문자열 객체, string 객체 등으로 혼용이 된다. ▶ 문..

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

[C++] 예외 처리 (Exception)

출처 => C++ How to Program (Detitel / Prenticehall) / 현재 그리고 미래지향적인 C++ 프로그래밍(장석우, 임정목 / 비앤씨에듀케이션) 예외란 무엇인가? ▶ 프로그램을 실행 중, 오작동이나 결과에 영향을 미치는 예상치 못한 상황이 발생한다. 이런 사오항을 예외 발생이라고 하는데 이를 처리하는 코드를 예외 처리기라고 한다. ▶ 예를 들면 다음과 같은 상황이다. #include using namespace std; int getExp(int base, int exp) { int value = 1; for (int n = 0; n < exp; n++) { value = value * base; //거듭제곱. base를 exp번 곱한 값이 value } return valu..

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

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

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

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

[C++] 포맷 플래그

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

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

[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 | C++

[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,..

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

[C++] 멤버함수와 외부 함수를 이용한 OOP(feat. friend, operator)

문제 요구 사항 분석 1. Rect 클래스 생성 및 width, height 멤버 변수 생성 2. Rect 메소드 생성 3. c의 가로, 세로, 면적을 나타내는 void 형의 show메소드를 생성 +operator(멤버 함수) 1. Rect 클래스 안에 operator+라는 연산자를 정의 2. 매개변수는 b로 하고 c의 가로와 세로를 구함. -operator(외부 함수) 1. friend 형식으로 연산자 –를 Rect 클래스 안에 정의 2. 매개 변수로 Rect 클래스의 객체인 a와 b를 정의 main함수 설정 1. a와 b에 가로와 세로 값을 설정 2. a에서 b를 뺏을 때 c의 가로, 세로, 면적을 출력 3. a에서 b를 뺏을 때 c의 가로, 세로, 면적을 출력 소스 코드 1 2 3 4 5 6 7 8..

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

[C++] 객체 배열화를 이용하여 정사각형 넓이 구하기

문제 요구사항 1. Rectagle이라는 클래스를 지정해야 함 2. Rectangle클래스 안에 width와 height라는 정수형 지역 변수 설정 필요 3. 클래스 안에 getArea()라는 메소드를 설정 필요 4. getArea()는 width*height 값을 return하도록 코드 설계 필요 5. 객체 배열의 크기를 설정하기 위해 int n을 입력 6. 각각의 Rectangle 객체에 width값과 height값을 저장하고 같으면 정사각형이라는 것을 출력해야함 설계도 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45..

공대생 배기웅
'C++' 태그의 글 목록