C++8 복사 생성자 복사 생성자, 언제 쓰일까?새로운 객체를 만들 때: 기존 객체와 똑같은 내용을 가진 새로운 객체를 만들고 싶을 때 사용합니다.객체를 함수에 전달할 때: 함수에 객체를 값으로 전달하면, 복사 생성자를 통해 함수 내부에서 사용할 복사본을 만듭니다.객체를 함수에서 반환할 때: 함수가 객체를 반환하면, 복사 생성자를 통해 반환할 복사본을 만듭니다.#include using namespace std;class Person {public: string name; // 이름을 저장하는 멤버 변수 int age; // 나이를 저장하는 멤버 변수 // 복사 생성자: 다른 Person 객체의 데이터를 복사하여 새로운 객체를 초기화 Person(const Person& other) {.. C++ 2024. 9. 27. this 포인터의 이해 This 포인터의 개념C++에서 this 포인터는 객체 자신을 가리키는 숨겨진 포인터입니다. C++에서 멤버 함수는 여러 객체에 의해 공유되지만, 각 객체는 자신만의 멤버 변수를 가지고 있습니다. 멤버 함수는 this 포인터를 통해 자신을 호출한 객체의 멤버 변수에 접근할 수 있습니다. 멤버 함수가 호출될 때마다 컴파일러는 몰래 this 포인터를 함수에 전달합니다. this 포인터는 자신을 호출한 객체의 주소를 가지고 있기 때문에, 멤버 함수는 this 포인터를 통해 자신을 호출한 객체의 멤버 변수에 접근할 수 있는 것입니다. #include class Person {public: std::string name; int age; void introduce() { std::cout na.. C++ 2024. 9. 26. ' : '과 ' :: '의 차이점 C++에서 :와 ::는 범위 지정 연산자로서 코드의 특정 부분에 접근하기 위해 사용되지만, 각각의 역할과 사용되는 컨텍스트가 다릅니다. 1. 콜론(:)콜론은 주로 클래스 내부에서 사용되며, 다음과 같은 역할을 합니다.멤버 초기화 리스트:생성자에서 멤버 변수를 초기화하는 데 사용됩니다.객체가 생성될 때 멤버 변수에 값을 할당하는 효율적인 방법입니다.특히 const 멤버 변수나 참조 멤버 변수를 초기화할 때 필수적으로 사용됩니다.C++class MyClass {public: int value1; const int value2; MyClass(int x, int y) : value1(x), value2(y) {} // value1을 x로, value2를 y로 초기화};상속:클래스가 다른 클래.. C++ 2024. 9. 26. c++클래스(2) 생성자 예제#include using namespace std;class SimpleClass{private: int num1; int num2;public: // 기본 생성자: num1과 num2를 0으로 초기화 SimpleClass() { num1 = 0; num2 = 0; } // 하나의 매개변수를 받는 생성자: num1을 주어진 값으로 설정하고, num2는 0으로 초기화 SimpleClass(int n) { num1 = n; num2 = 0; } // 두 개의 매개변수를 받는 생성자: num1과 num2를 각각 주어진 값으로 설정 SimpleClass(int n1, int n2) .. C++ 2024. 9. 25. c++ 참조 참조의 기본 개념 이해: 참조의 정의, 선언 방법, 특징 등 기본적인 개념을 익혀 봅시다.참조의 활용 탐구: 함수 매개변수 전달, 반환 값, const 참조 등 다양한 활용 방법을 살펴봅시다.참조와 포인터 비교 분석: 참조와 포인터의 차이점을 비교하고 각각의 장단점을 분석해 봅시다.참조의 기본개념 이해참조의 정의참조는 기존 변수에 새로운 이름(별명)을 붙여주는 기능입니다. 마치 '철수'라는 친구를 '똘똘이'라는 별명으로 부르는 것과 비슷하죠. 하지만 참조는 단순한 별명 이상의 의미를 가집니다. 한 번 생성된 참조는 항상 특정 변수를 가리키며, 그 변수를 통해 값을 변경하거나 읽어올 수 있습니다.참조 선언 방법#include // 입출력을 위한 헤더 파일 포함using namespace std;int m.. C++ 2024. 9. 25. c++ 클래스 c++구조체c++구조체는 함수를 삽입할 수 있습니다.//구조체에 삽입되기 이전의 함수void ShowCarState(const Car &car){ cout연산의 대상에 대한 정보가 불필요한 이유는 함수가 구조체 내에 삽입되면서 구조체 내에 선언된 변수에 직접 접근이 가능해 졌기 때문입니다.// choices.cpp -- 배열 변형#include using namespace std;#define ID_LEN 20#define MAX_SPD 200#define FUEL_STEP 2#define ACC_STEP 10#define BRK_STEP 10struct Car{ char gameID[ID_LEN]; //소유자 ID int fuelGauge; //연료량 int .. C++ 2024. 9. 25. vector와 array 벡터(vector)1. 벡터의 장&단점벡터는 필요에 따라 크기를 자유롭게 조절할 수 있는 동적 배열이라고 할 수 있습니다.장점:유연성 : 데이터 개수가 미리 정해져 있지 않아도 돼요! 필요할 때마다 데이터를 추가하거나 삭제할 수 있습니다.편리성 : 데이터 접근, 삽입, 삭제 등 다양한 기능을 제공해서 사용하기 편리합니다.효율성 : 메모리 관리를 자동으로 해주기 때문에 메모리 낭비를 줄일 수 있습니다.단점:약간의 오버헤드 : 크기를 조절하는 과정에서 약간의 시간이 더 걸릴 수 있습니다. 하지만 대부분의 경우에는 큰 문제가 되지 않는다고 합니다. 2. 벡터의 사용법벡터는 단순히 데이터를 저장하는 것 이상의 다양한 기능을 제공합니다. 필요에 따라 다양한 작업을 수행할 수 있습니다.생성:vector myVect.. C++ 2024. 9. 25. C++ 첫 걸음 C와 C++C 장/단점장점 : 컴퓨터 처리구조와 유사해 실행속도 빠름, 효율성 높고 간결, 문법 간결, 로우레벨 프로그래밍에 사용(하드웨어 직접 제어 프로그래밍 가능), 이식성 좋음단점 : 유지 보수 어렵고 디버깅 어려움 C++ 장/단점장점 : 코드의 재활용성이 높음, 객체지향 프로그래밍(캡슐화, 상속성, 다형성), 오류 수정 쉬움, 이식성 좋고 유연단점 : 절차지향언어보다 속도 느림 C / C++C는 절차지향 프로그래밍 언어이고 c++은 객체 지향 프로그래밍 언어입니다. 절차지향은 프로그래밍을 순차적은 처리하고 객체지향은 객체 중심으로 데이터와 메소드를 만들어 엮어 처리합니다. 객체 지향은 캡슐화, 추상화, 상속, 다형성같은 특징을 가지며 구조화 되어있습니다. (2개의 사진 출처 : https://m.. C++ 2024. 9. 24. 이전 1 다음