C, C++

· C, C++
💋 Friend Functions이란?✔️ 개념Friend Function은 특정 클래스의 private 또는 protected 멤버에 직접 접근할 수 있는 권한을 가진, 클래스 외부에서 정의된 함수입니다. (이게 뭔 짬뽕..?)친구 함수는 클래스의 멤버 함수가 아니지만, 클래스 내에서 friend 키워드를 사용하여 친구로 선언됩니다.⇒ 멤버 함수는 아닌데, 그래도 private 또는 protected 변수랑 함수에 직접 접근이 가능?!!✔️ 사용 방법친구 함수를 선언하기 위해서는 함수 앞에 friend 키워드를 붙이면 됩니다.class MyClass {private: int data;public: MyClass(int value) : data(value) {} friend void s..
· C, C++
💋 연산자 오버로딩이란?✔️ 개념C++에서 연산자 오버로딩(operator overloading)은 클래스 또는 structure에서 기존 연산자인 +, - , =, ==, *, /, % 등등을 재정의하는 것을 말합니다. 객체들에 대한 연산자 사용이 가능해져, 코드의 가독성과 재사용성을 높일 수 있습니다.✔️ 구조ReturnType operatorOP (arguments) { // 구현}OP는 오버로드하고자 하는 연산자보통 + 연산자의 이름은 + 그 자체임.ReturnType은 연산 결과의 타입arguments는 연산자의 피연산자연산자 오버로딩은 보통 멤버 함수나 friend 함수을 통해 구현됩니다.💋 구현 방법✔️ friend function에서 오버로딩#include class Complex..
· C, C++
C++에서 static 키워드는 클래스의 정적 멤버 변수와 정적 함수를 정의하는 데 사용됩니다.정적 멤버들은 클래스의 모든 인스턴스 간에 공유되며, 클래스 인스턴스 없이도 접근하고 사용할 수 있습니다.정적 멤버 변수와 함수는 클래스의 인스턴스와 관계없는 상태나 연산 을 다루고, 클래스 자체의 상태 정보를 유지하거나 클래스 수준의 연산을 수행할 때 유용합니다.💋 정적 멤버 변수 (Static Member Variables)class MyClass {public: static int count; // 정적 멤버 변수 선언 MyClass() { count++; } ~MyClass() { count--; }};int MyClass::count = 0; // 정적 멤버 변수 초기화클래스의 모든 ..
· C, C++
C++에서 const 키워드는 '상수'라는 뜻이다. 한 번 정해진 값은 바꿀 수 없게 만든다.const 사용 방법은 몇 가지가 있는데, 위치에 따라 의미가 달라진다.💋 변수 앞에 constconst int maxCount = 100;이 코드에서 maxCount는 100이라는 값을 갖고, 이 값은 상수로 선언되어 프로그램 내에서 바꿀 수 없다.💋 const와 포인터✔️ const int* ptrconst int* ptr = &maxCount;*ptr 를 변경할 수 없는 것!포인터 자체가 가리키는 주소 ptr는 변경 가능포인터가 가리키는 데이터 *ptr는 변경 불가능ptr은 int의 포인터인데, ptr이 가리키는 값을 바꿀 수 없다. 그래서 ptr = 200; 이런 식으로 값을 변경하려고 하면 컴파일 에..
· C, C++
💋 인트로C++에서 인라인 함수(inline function)는 일반적으로 컴파일러에게 함수 호출의 오버헤드를 줄이도록 요청하는 방법입니다.인라인 함수는 함수 호출이 일어나는 위치에서 함수 코드 자체로 대체됩니다. 이는 함수의 실행 속도를 향상시킬 수 있지만, 코드 크기가 증가할 수 있는 단점 이 있습니다. 인라인 함수는 작고, 빈번하게 호출되는 함수에 적합 합니다.💋 인라인 함수의 정의 방법인라인 함수는 inline 키워드를 사용하여 정의합니다. C++에서는 클래스 멤버 함수를 클래스 정의 내에서 정의할 때 자동으로 인라인으로 처리되기도 합니다.✔️ 예시 코드다음은 간단한 인라인 함수의 예시입니다.#include // 인라인 함수 정의inline int add(int x, int y) { re..
· C, C++
💋 참조란?✔️ 정의참조는 어떤 변수의 다른 이름을 제공합니다.예를 들어, 변수 robert에 대한 참조를 만들면, 이 참조를 통해 robert 변수를 직접 조작할 수 있습니다.int robert = 10;int& bob = robert; // bob은 robert의 참조bob = 20; // robert의 값도 20으로 변경됨bob은 robert의 저장 위치에 대한 참조이며, bob을 통해 robert를 조작할 수 있습니다. bob에서 이루어진 변경은 모두 robert에 반영됩니다.헷갈리죠?✔️ 참조 vs 일반변수만약에 bob이 참조변수가 아니라 일반변수였다 고 생각해 봅시당int robert = 10;int bob = robert;bob = 20;이렇게 되면 bob은 단지 rob..
· C, C++
💋 생성자란?✔️ 개념객체를 초기화하는 역할을 하는 member function초기화 = member variables의 값을 초기화객체 선언 시 자동으로 호출된다.💋 생성자 코드에서 사용하기✔️ 생성자 정의이름은 클래스 이름과 동일하게반환값은 없음class Money {public: Money(int dollar, int cent) // 생성자 : dollar(dollar), cent(cent) { } int getDollars() const { return dollar; } int getCents() const { return cent; }private: ..
· C, C++
💋 bit & byte ✔️ 8 bit = 1 byte 1비트 = 0 또는 1을 저장할 수 있는 공간 저장 단위가 1비트 증가할 때마다 저장 단위는 2배씩 늘어난다. 1바이트 = 8비트 = 저장할 수 있는 숫자의 개수는 2^8=256개 ✔️ 데이터의 단위 💋 아스키코드: byte로 문자 표현하기 문자를 숫자로 표현하기 위해서는 아스키코드를 사용한다. 아스키코드는 문자를 '숫자'로 표현하기 위한 약속이다. 아스키코드는 총 기존 128개 + 확장된 128개로, 1바이트(8비트)를 사용해서 표현할 수 있다. 💋 자료형이란? ✔️ 개념 자료형은 내가 사용할 데이터의 크기에 맞게 메모리를 할당받는 과정에서, 내가 몇 바이트의 메모리를 사용할 것인지 명시하는 것이다. ✔️ 종류 예를 들어서 정수 short는 2바이..
깃짱
'C, C++' 카테고리의 글 목록