Programming Language/C++(6)
-
C++ - 문자형 데이터(char)
C++의 char형 데이터C++에서 char 타입은 문자(character)를 저장하는 기본적인 자료형으로 char는 1바이트(8비트) 크기의 정수형으로, ASCII 코드 값(0~255)을 저장할 수 있다. 1. char는 문자 하나를 저장하는 정수형 타입 메인 함수 내부에서 char 변수에 'A'라는 문자를 저장하고 이를 아스키 코드로 뽑아보면이렇게 숫자 값이 나온다.이는 내부적으로 char가 정수(ASCII 코드 값)를 저장하기에 (int)ch로 변환하면 65가 출력되는 것이다.즉, 'A' 같은 문자는 문자 그대로 저장되는 것이 아니라, 정수 65로 변환되어 메모리에 저장된다는 의미이다. 그래서 동일하게 char형 변수에 숫자를 넣어주면이렇게 같은 결과를 출력하는 것을 볼 수 있다. char ch ..
2025.02.17 -
처음부터 따라해보는 C++ - 1. 개발환경/프로젝트 생성하기/Hello World출력
1. IDEWindows에서는 Microsoft에서 만든 Visual Studio를 사용하고 디폴트 컴파일러로 MSVC++를 사용한다.MacOS에서는 Apple에서 만든 Xcode로 디폴트 컴파일러로는 Clang이란것을 사용한다.특정 운영체제에 국한되지 않은 Cross Platform으로 나온 Jetbrains에서 만든 Clion이란 것이 있다.또한 CUI를 사용하는 Cross Platform으로 사용되는 Vi/Vim이라는 프로그램이 있다.이는 IDE는 아니지만 많은 사용자들이 사용하는 프로그램이기에 넣어봤다고 함.동일하게 IDE는 아니지만 C++ 플러그인을 사용하면 사용할 수 있는 Microsoft에서 나온 Visual Studio Code가 있다. 이중 Visual Studio가 제일 점유율이 높고..
2025.02.15 -
열혈 C++ - Chapter 04. 클래스의 완성
Chapter 04-1. 정보은닉프로그래밍은 객체간의 관계를 구성해주는 것이 중요하다.그런데 객체를 정의함에 있어서 모두 정보은닉, 캡슐화가 되어있어야한다. 여기서 정보은닉은 멤버변수(정보)를 감추겠다(은닉하겠다.)해당 클래스가 아닌 다른 영역, 다른 클래스에서 접근이 불가능하도록 하겠다는 것이 바로 정보 은닉인것이다. 그러면 정보 은닉은 모두 쉽게 할 수있는 개념이다.물론 이렇게 정보에 접근만 못하게 한다고 정보를 은닉했다고 할 수 있는 것은 아니다.접근을 막았으니까 다른 경로로 내가 원하는 방향으로 접근할 수 있도록 길을 만들어 줘야만한다.아예 접근을 못하게 하면 클래스 자체를 선언하는 의미가 없기 때문에 어떤 방법으로든 접근은 할 수 있어야 한다. 그러면 캡슐화는 무엇일까.캡슐화를 했다 라는 것은 ..
2024.11.24 -
열혈 C++ - Chapter 03. 클래스의 기본
03-1. C++에서의 구조체구조체의 등장 배경연관있는 데이터를 하나로 묶으면 프로그램의 구현과 관리가 용이하다.구조체는 연관 있는 데이를 하나로 묶는 문법적 장치이다. 구조체로 연관있는 데이터들을 묶으면 생성 및 소멸시점을 일치시키고, 이동 및 전달 시점 및 방법 또한 일치시키기 때문에 관리가 용이 해진다는 장점이 있다.C++ 에서의 구조체 변수 선언C에서는 struct라는 키워드를 통해 구조체 변수를 선언했는데 C++의 경우는 struct키워드가 필요 없다.//C언어에서의 구조체 선언 방법struct Car basicCar;struct Car simpleCar;↓//C++에서의 구조체 선언 방법Car basicCar;Car simpleCar;그렇기 때문에 변수를 선언할때 struct를 없에기 위해서 ..
2024.11.19 -
열혈 C++ - Chapter 02. C언어 기반의 C++ 2
02-1. Chapter 02의 시작에 앞서C언어의 복습을 유도하는 확인학습 문제#[문제 1] 키워드 const의 의미키워드 const는 어떤 의미를 갖는가? 다음 문장들을 대상으로 이를 설명해보자.const int num = 10; ===> num을 상수화 / num은 10에서 변경할 수 없음const int * ptr1 = &val1; ===> ptr이 가리키는 val1이 const int 타입임 / ptr1을 이용해서는 val1의 값을 변경할 수 없음, 그러나 ptr1은 다른 주소값으로 변경하는게 가능함int * const ptr2 = &val2; ===> ptr2를 상수화 / ptr2의 값은 변경할 수 없이 val2를 항상보고있어야함, ptr2를 통해서 val2의 값을 변경하는건 문제 없음co..
2024.11.19 -
열혈 C++ - Chapter 01. C언어 기반의 C++
01-1. printf와 scanf를 대신하는 입출력 방식C++ 버전의 Hello World 출력 프로그램//예제를 통해 확인할 사실//헤더 파일의 구성 #include //출력의 기본 구성std:cout 또한 C언어의 경우는 출력 대상에 따라 서식 지정을 다르게 해서 출력 했으나(%d, %g, %f) C++에서는 사용하지 않아도 된다. scanf를 대신하는 데이터의 입력//예제를 통해서 확인할 사실 몇가지 //입력의 기본 구성std::cin>>'변수'//변수의 선언위치//함수의 중간 부분에서도 변수의 선언이 가능하다 우선 C++의 경우는 변수의 선언 위치에 제한을 두지 않는다.(C의 경우는 상단에 선언했어야 했음, C99 버전 이후부터는 이게 문제가 없음, C89, C90은 불가능함) 이렇게 변수를..
2024.11.18