C, C++
class (3) - 생성자, 파괴자
class (3) - 생성자, 파괴자
2024.09.25C++ OOP의 목적은, class 를 int, char 처럼 사용하게 만드는 것이다. int a = 1; 과 같은 기본 자료형 사용 방법을 살펴보면, int a; 선언과, a = 1; 정의(초기화, 값 할당)가 있다. 그리고 변수명을 사용한다. C++ OOP의 목적은, class 를 int, char 처럼 사용하게 만드는 것이다. 클래스 자료형도 동일한 개념을 가진다.클래스는 대입 연산자 대신, 생성자와 같은 클래스 맴버 함수로 "클래스 맴버 변수"를 초기화한다.생성자와 파괴자의 이해는, 단순히 초기화 역할의 이해지만,"동적 할당"과 "메모리 해제" 그리고 "깊은 복사", "얇은 복사"를 이해하려면, 생성자와 파괴자의 호출 시점을 명확하게 머리속에 그릴 수 있어야 한다. class(1)에서 선언에..
class (2) - this 포인터
class (2) - this 포인터
2024.09.24this 는 클래스 포인터다. #include using namespace std;class MyClass{public: void printThis() { std::cout #include using namespace std;class MyClass{public: void printThis(MyClass *ptr) { std::cout
Class (1) - 클래스, 캡슐화
Class (1) - 클래스, 캡슐화
2024.09.24클래스를 바라보는 관점프로그램은, Data 와 Logic 으로 이루어진다.프로그래밍에서 Data 는 기본 자료형, 복합 자료형, 구조체(사용자 정의 자료형), 클래스(구조체+함수) 로 사용한다. 프로그래밍에서 Data 는 자료형과 초기화 그리고 변수명으로 사용이 모두 동일하다.클래스도 마찬가지다.클래스라는 자료형을 선언하고, 변수명으로 사용하고, 초기화하는 관점으로 접근해야 한다.C++ OOP의 목적은, class 를 int, char 처럼 사용하게 만드는 것이다. (참고) 편의상, 구조체에 함수를 포함하면 클래스라고 단순히 설명한다. 하지만, C언어의 구조체와 C++의 구조체는 다르다.그리고 C++의 구조체와 C++의 클래스는 한가지 차이점이 있다.기본 자료형과 살펴보자.int a; 선언과, a = ..
Code Blocks 설치, 삭제
Code Blocks 설치, 삭제
2024.09.051. APT 패키지 매니저로 설치 sudo apt update; sudo apt upgrade -y; sudo apt install g++ sudo apt install codeblocks -y sudo apt install codeblocks-contrib -y 2. 삭제sudo apt autoremove --purge codeblocks -y
콘솔 게임 맵
콘솔 게임 맵
2024.08.22이모지 링크 https://kr.piliapp.com/twitter-symbols/https://www.unicode.org/emoji/charts/full-emoji-list.htmlhttps://kr.piliapp.com/symbol/#graphic 1)#include #define icon_Size sizeof "🔚" // icon size == 5byte#define movable 8#define x_Blocks (movable + 2) // 이동 블럭 수 + 양쪽 벽 2개#define x_Total (icon_Size * x_Blocks) // x 축 전제 크기int main(void){ char map[x_Total] = {"⬛🔚🔙🔚🔙🔚🔙🔚🔙⬛"}; ..
문자 인코딩 1 - 인코딩
문자 인코딩 1 - 인코딩
2024.08.22https://namu.wiki/w/UTF-8#toc UTF-8UTF-8은 가장 많이 사용되는 가변 길이 유니코드 인코딩이다. 켄 톰슨과 롭 파이크( Go 언어 를 만든 사람namu.wiki #include #define iconSZ sizeof "✅" // icon size == 5byte// https://namu.wiki/w/UTF-8#toc// https://www.compart.com/en/unicode/U+2705// UTF-8 Encoding: 0xE2 0x9C 0x85int main(void){ char icon[iconSZ] = "✅"; printf("icon %s size: %ld Byte\n", icon, sizeof icon); char *ptr = icon; ..
rand()와 srand()
rand()와 srand()
2024.08.131. 기본 개념 rand() 임의의 난수 하나를 생성한다. 범위는 0~RAND_MAX, 0~32767(0x7fff) 이다. srand() 시간 값을 매개로 난수를 생성한다. time(NULL) 현재 시간을 초단위로 변경해 반환 2. 기본 사용법 int num = rand() % n; 임의의 0 ~ n-1 범위 중 임의의 수 하나를 생성한다.ex 1.) rand() % 5 의 범위는 0 ~ 4ex 2.) rand() % 9 의 범위는 0 ~ 8 3. 응용 사용법 int i = rand() % n + m; // ex 1.) rand() % 4 + 1 의 범위는 1, 2, 3, 4 (연속된 수)int j = rand() % n * m; // ex 2.) rand() % 4 * 2 의 범위는 0, 2..
[C언어 로직과 순서도] 07. 간단한 프로그램 만들기 2
[C언어 로직과 순서도] 07. 간단한 프로그램 만들기 2
2024.08.13간단한 프로그램 함수로 구현하기 14가위바위보 게임 만들기난수 발생 함수를 사용하여 컴퓨터와 대전이 가능한 가위바보 게임을 만들어 보세요. @참고 사항게임을 위한 각 기능들을 별도의 함수로 만들도록 한다.게임을 위해 필요한 기능으로는 사용자 입력, 컴퓨터 입력, 판정, 결과 출력 등이 있다.각 기능은 다음과 같은 삼수로 구현한다.함수1 : 사용자로부터 입력을 받기 위한 함수이다. 사용자로부터 0, 1, 2, 3의 값을 입력 받을 수 있는데 1, 2, 3은 각 가위, 바위, 보에 대응되는 정숫값이고, 0이 입력되면 결과를 출력한 후 프로그램을 종료한다.단, 지정된 번호 이외의 값이 입력될 경우 오류 메시지를 출력한다.함수2 : 난수 발생 함수를 사용하여 1~3의 값 중 임의의 값을 생성하며 이에 따라..
[C언어 로직과 순서도] 06. 간단한 프로그램 만들기 1
[C언어 로직과 순서도] 06. 간단한 프로그램 만들기 1
2024.08.13구현 방법은 개발자가 선택하세요. 간단한 프로그램 함수로 구현하기 1 사용자에게 숫자 2개를 입력받고, 사칙연산 기호(+, -, *, /, %, //) 를 입력받으면, 그 연산 결과를 출력하라.참고) 예제01, 예제02, 예제03, 예제42 간단한 프로그램 함수로 구현하기 2 사용자가 사각형의 넓이, 원의 넓이, 삼각형의 넓이, 원의 둘레를 선택하고 자동 계산되도록 구현하라.그리고 계산에 필요한 값을 입력받고, 그 결과를 출력하는 프로그램을 구현하라. 참고) 예제04, 예제05, 과제02 사각형의 넓이 = 가로의 길이 × 세로의 길이원의 넓이 = 반지름 × 반지름 × 원주율각형의 넓이 = (1/2) 밑변 × 높 간단한 프로그램 함수로 구현하기 3 사용자가 숫자를 원하는 개수만큼 입력..
[C언어 로직과 순서도] 05.함수
[C언어 로직과 순서도] 05.함수
2024.08.13diagrams.net Link Flowchart Maker & Online Diagram SoftwareFlowchart Maker and Online Diagram Software draw.io is free online diagram software. You can use it as a flowchart maker, network diagram software, to create UML online, as an ER diagram tool, to design database schema, to build BPMN online, as a circuit dapp.diagrams.net 연습문제 예제 53함수 이용해서 두 수 중 큰 수 찾기 두 수를 입력받고, 그 중 큰 수를 찾아 반환한다.반환하..
[C언어 로직과 순서도] 04.배열
[C언어 로직과 순서도] 04.배열
2024.08.13diagrams.net Link Flowchart Maker & Online Diagram SoftwareFlowchart Maker and Online Diagram Software draw.io is free online diagram software. You can use it as a flowchart maker, network diagram software, to create UML online, as an ER diagram tool, to design database schema, to build BPMN online, as a circuit dapp.diagrams.net 연습문제 예제 361부터 10까지의 수를 리스트에 저장하고 출력하기 i가 1부터 시작해 1씩 증가하며 10까지 ..
[C언어 로직과 순서도] 03.반복구조
[C언어 로직과 순서도] 03.반복구조
2024.08.13diagrams.net Link Flowchart Maker & Online Diagram SoftwareFlowchart Maker and Online Diagram Software draw.io is free online diagram software. You can use it as a flowchart maker, network diagram software, to create UML online, as an ER diagram tool, to design database schema, to build BPMN online, as a circuit dapp.diagrams.net 연습문제 예제 171부터 10까지 출력하기(1) 1로 시작되는 변수 i 값을 1씩 증가하면서,i 값이 10보다 ..