C++ 오버로딩 vs 오버라이딩 – 헷갈리지 말고 딱 정리하자C++을 공부하다 보면 **오버로딩(overloading)**과 **오버라이딩(overriding)**이라는 낯선 단어를 만나게 됩니다.이름은 비슷한데, 실제로는 하는 일이 완전히 다릅니다.이 글에서는 두 개념을 쉽게 비교하면서, 언제 어떻게 쓰는지를 딱 정리해보겠습니다.오버로딩 (Overloading) – 같은 이름, 다른 입력오버로딩은 같은 이름의 함수를 여러 개 만들되, 매개변수를 다르게 만드는 것을 말합니다.class Printer {public: void print(int x) { cout 이렇게 하면 print() 함수는 입력값의 타입에 따라 다른 버전이 호출됩니다.Printer p;p.print(10); ..
C++ 가상 함수(virtual function): 왜 필요하고, 어떻게 동작할까?C++을 배우다 보면 클래스를 상속해서 자식 클래스를 만들고, 부모 포인터로 자식 객체를 조작하는 상황이 자주 생깁니다. 그런데 이런 상황에서 함수 호출이 내 생각대로 동작하지 않는 경우를 만날 수 있습니다. 이 문제를 해결하기 위해 C++에서는 **가상 함수(virtual function)**라는 개념을 제공합니다.오늘은 virtual 키워드 하나만으로, 어떻게 객체마다 다르게 동작하는 함수를 만들 수 있는지 알아보겠습니다.함수가 왜 다르게 동작하지 않을까?아래와 같은 코드를 한번 보겠습니다.#include using namespace std;class Animal {public: void speak() { ..
✅ 다형성이란?👉 정의부터**다형성(polymorphism)**은 **“하나의 이름이 다양한 형태로 동작할 수 있는 것”**을 뜻합니다.C++에서는같은 함수 이름이라도 다른 방식으로 동작할 수 있도록 만들 수 있고같은 부모 타입을 가진 자식 객체들이 서로 다르게 행동하게 만들 수 있습니다.🧠 왜 쓰는 걸까?공통된 인터페이스로 다양한 객체를 다룰 수 있게 해 줍니다.예를 들어:Animal* a = new Dog();a->speak(); // 강아지가 멍멍!Animal* b = new Cat();b->speak(); // 고양이가 야옹!→ 둘 다 Animal*인데 동작은 다름. 이게 바로 다형성입니다.✅ 다형성의 종류C++에서는 두 가지로 나뉩니다.종류 이름 타이밍 키워드 예시정적 다형성Static ..
✅ 먼저: 포인터(pointer)란?메모리 주소를 저장하는 변수입니다.객체나 변수의 **‘실제 위치(주소)’**를 가리키는 도구라고 보시면 됩니다.예시:int x = 10;int* px = &x; // x의 주소를 저장x는 값 10을 담는 변수px는 x의 주소를 담고 있는 포인터*px는 그 주소에 있는 값을 뜻하므로 10이 됩니다✅ 클래스 객체와 포인터클래스 객체도 포인터로 다룰 수 있습니다.class Person {public: void sayHello() { std::cout Person p; // 객체 생성Person* ptr = &p; // 객체 주소를 저장하는 포인터✅ . vs ->의 차이표현 의미 대상 예시.객체의 멤버에 접근객체 그 자체p.sayHello();..
막대기 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율1 초 (추가 시간 없음)512 MB2837412017969543.191%문제아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 6, 9, 7, 6, 4, 6 이다. 일렬로 세워진 막대기를 오른쪽에서 보면 보이는 막대기가 있고 보이지 않는 막대기가 있다. 즉, 지금 보이는 막대기보다 뒤에 있고 높이가 높은 것이 보이게 된다. 예를 들어, 그림과 같은 경우엔 3개(6번, 3번, 2번)의 막대기가 보인다. N개의 막대기에 대한 높이 정보가 주어질 때, 오른쪽에서 보아서 몇 개가 보이는지를 알아내는 프로그램을 작성하려..
Strfry 성공다국어 한국어 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 256 MB 12542 5294 4110 40.669% 문제 C 언어 프로그래밍에서 문자열(string)은 native한 자료형이 아니다. 사실, 문자열은 그저, 문자열의 끝을 표시하기 위한 말단의 NULL이 사용된, 문자들로 이루어진 문자열일 뿐이다. 하지만 프로그래밍 언어에서 문자열을 다루는 것은 매우 중요하기 때문에, C 표준 라이브러리는 문자열을 다루는 데에 매우 유용한 함수들을 제공하고 있다 : 그들 중에는 strcpy, strcmp, strtol, strtok, strlen, strcat 가 있다. 하지만, 잘 알려져 있지 않으며, 잘 사용되지도 않는 함수가 하나 있다 : strfry 함수다. strfry 함수..
세로읽기 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 62551 30446 26125 49.399% 문제 아직 글을 모르는 영석이가 벽에 걸린 칠판에 자석이 붙어있는 글자들을 붙이는 장난감을 가지고 놀고 있다. 이 장난감에 있는 글자들은 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’부터 ‘9’이다. 영석이는 칠판에 글자들을 수평으로 일렬로 붙여서 단어를 만든다. 다시 그 아래쪽에 글자들을 붙여서 또 다른 단어를 만든다. 이런 식으로 다섯 개의 단어를 만든다. 아래 그림 1은 영석이가 칠판에 붙여 만든 단어들의 예이다. A A B C D D a f z z 0 9 1 2 1 a 8 E W g 6 P 5 h 3 k x 한 줄의 단어는 글자들을 빈칸 없이..
알파벳 개수 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율 1 초 256 MB 48648 33063 26607 68.552% 문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각 알파벳이 단어에 몇 개가 포함되어 있는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 출력 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. 예제 입력 1 복사 baekjoon 예제 출력 1 복사 1 1 0 0 1 0 0 0 0 1 1 0 0 1 2 0 0 0 0 0 0 0 0 0 0 0 #include #include #include using namespace std; int ma..
- Total
- Today
- Yesterday
- 일본어문법무작정따라하기
- jlpt
- K-MOOC
- 인지부조화
- 통계학
- 통계
- C
- 뇌와행동의기초
- 티스토리챌린지
- 보세사
- 일문따
- C/C++
- 심리학
- 윤성우
- 여인권
- 코딩테스트
- 백준
- 인프런
- stl
- 회계
- 사회심리학
- 열혈프로그래밍
- 오블완
- 류근관
- Python
- 강화학습
- c++
- 일본어
- 파이썬
- 데이터분석
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |