C++

A가 Coord형 오브젝트 일 때 cout
함수 포인터 배열 함수 포인터 배열은 함수 포인터를 선언할 때 함수 포인터 이름 뒤에 [ ] 대괄호 안에 배열의 크기를 지정하면 된다 반환값자료형 (*함수포인터 이름)[크기](매개변수자료형1, 매개변수자료형2); 선언 예제 int (*functionPointers[])(int, int) 전체 코드 예제 #include // 덧셈 함수 int add(int a, int b) { return a + b; } // 뺄셈 함수 int subtract(int a, int b) { return a - b; } // 곱셈 함수 int multiply(int a, int b) { return a * b; } int main() { // 함수 포인터 배열 선언 및 초기화 int (*functionPointers[])(i..
C++의 헤더는 파일 입출력을 위한 클래스들을 제공함. 이 헤더는 ifstream와 ofstream 클래스를 포함하고 있다. ifstream (Input File Stream): ifstream 클래스는 파일에서 데이터를 읽기 위해 사용된다. 즉, 파일을 열어서 데이터를 읽을 때 사용된다. 파일을 열고 읽기 전용으로 사용된다. 쉽게 말해서 원래 있는 파일을 열어서 데이터를 읽어오는 것. ifstream를 사용하여 파일을 열고 데이터를 읽는 예제: #include #include int main() { std::ifstream inputFile("input.txt"); // input.txt 파일을 읽기 위해 엽니다 if (inputFile.is_open()) { // 파일이 정상적으로 열렸는지 확인 st..
예제부터 보자 #include #include int main() { std::string name = "rgdrgdrgdrg 123 bbbb"; name.erase(12, 3); name.insert(12, "aaa"); std::cout
오버로딩(Overloading)과 오버라이딩(Overriding) 오버로드란? : 함수 중복 정의 오버로딩은 같은 이름의 함수에 매개변수를 다르게 사용하여 매개 변수에 따라 다른 함수가 실행되는 것 오버라이딩(Overriding) : 함수 재정의 오버라이딩은 상속받았을 때 부모클래스의 함수를 사용하지 않고 다른 기능을 실행할 때 함수를 자식 클래스에 같은 이름, 매개변수로 재정의해서 사용하는 것. 객체 지향에서의 오버로딩은 같은 이름의 메소드를 여러개 중복 선언하는 것을 말한다. C와 같은 기존언어에서는 같은 이름의 함수를 만들 수가 없었다. 이것이 직관적으로 보일 수 있지만, 다음과 같은 경우를 보자 만약, 정수값들을 더 해서 평균을 내는 메소드를 사용있다고 가정 같은 기능을 하는 것 == 실수를 다루..
C++의 Canonical form(정규형)을 따르게 되면 복사 생성자와 복사 할당 연산자를 꼭 기입을 해주어야한다. Canonical form(정규형)이란? C++98의 OCCF에 대해여 정리 Orthodox Canonical Class Form (OCCF) 정식 클래스 형식 OCCF는 아래 네 가지의 형태를 명시적으로 정의하여 선언하는 것을 가리킨다. 기본 생성자 기본 소멸자 복사 생성자 할당 연산자 오버로딩 예를 통해 살펴보자 Animal.hpp #ifndef ANIMAL_HPP # define ANIMAL_HPP #include class Animal { protected: std::string type; public: Animal(void); //기본 생성자 Animal(const Animal ..
대입 연산자 오버로딩 → C++의 한가지 멋진 기능 중 하나는 클래스를 선언할 때 연산자에 특별한 의미를 부여할 수 있다는 것. 이것을 operator overloading이라고 함. 아래 나열되는 특징 네이밍 컨벤션을 따라 클래스에 멤버함수를 선언함으로서 C++ operator overload를 구현 가능. 예를 들어 ‘+’연산자를 오버로딩하기 위해서 operator+ 라는 이름의 멤버함수를 만들어주면 됨. 일반적으로 오버로딩에 많이 쓰이는 연산자는 다음과 같다. = (대입 연산자) +, - , * (이진 산술 연산자) +=, =, = (복합 대입 연산자) ==, != (비교 연산자) 대입 연산자 = 대입 연산자 구현 class MyClass { public: ... MyClass & operator=..
복사 생성자란? → 한 객체의 내용을 다른 객체로 복사하여 생성된 생성자 일반적으로 생성된 생성자와 같은데 그 내용이 다른 객체를 복사하여 생성된 거승로 이해 복사 생성자읙 특징 자신과 같은 타입의 객체를 인자로 받는다. 복사 생성자가 정의 되어 있지 않다면, 디폴트 복사 생성자가 생성됨. 디폴트 복사 생성자? →일반 생성자에서 디폴트 생성자의 특징과 똑같다면 보면 되는데 클래스 내에 복사 상생자를 정의하지 않더라도 객체 생성 시 컴파일러가 자동으로 복사 생성자를 생성한다. 복사 생성자의 가장 기본적인 코드 class Test { public: Test(const Test& obj) { // copy constructor ... } } 명심해야될 부분 앞으로 복사 생성자를 정의해야 할 상황 → 매개 변수..
초기화 리스트는 쉽게 말해서 클래스를 만들 때 초기화를 시켜주는 과정에서 this를 사용해서 하지 않고 리스트를 통해 초기화 시키는 걸 말함. #include class A { private: int a; public: A(int a) : a(a) { } int getA() { return a; } }; int main() { A *tmp = new A(2); std::cout getA()
객체 포인터 배열 할당은 쉽게 클래스를 만드는데 N개 만큼 만든다는 거임 예제를 통해 배워보자 Zombie* zombieHorde(int N, std::string name) { Zombie* horde = new Zombie[N]; for (int i = 0; i < N; i++) { std::cout
재윤
'C++' 카테고리의 글 목록 (3 Page)