반응형

C++ 8

[C++] 디폴트 복사 생성자

복사 생성자에 대해 이야기하기 전에 C++ 스타일에 독특한 초기화 방식을 먼저 보겠습니다. int n = 20; int &nref = n; int s(30); int &sref(s); 위에 두 문장과 아래 두 문장은 동일한 기능을 수행합니다. 이 전 블로그에 멤버 이니셜라이저에 대해 이야기했는데 멤버 이니셜라이저 과정에서 위에 형태를 찾아볼 수 있습니다. 이어서 다음의 코드를 보겠습니다. int main() { Simple sim1(15,20); Simple sim2 = sim1; sim2.SHowSimpledata(); } Simple 클래스에 인자값을 2개를 받는 생성자를 만들었다고 가정해 보면, sim1이라는 객체는 생성과 동시에 인자값을 전달하며 생성자를 호출하였습니다. 하지만 sim2 객체는 생..

[c++] 객체지향 프로그래밍의 이해

c++은 객체지향 언어이다. 따라서 우리는 객체지향프로그래밍에 대한 이해가 필요하다 간단하게 말하자면 객체지향 프로그래밍이란 객체지향 프로그래밍은 현실에 존재하는 사물과 대상, 그리고 그에 따른 행동을 있는 그대로 실체화시키는 형태의 프로그래밍이다. 라고 할 수 있다. 좀 추상적이니 다시 설명하자면 프로그램을 설계 하고 작성하는데 자신이 구현하고자 하는 전체적인 목표에 있어 하나하나에 객체(object)에 상태 절보와 하나 이상의 행동(기능)을 담아주는 것이라고 보면 된다. 객체지향은 4가지 특성을 가지고 있다. 추상화 캡슐화 상속화 다향성 객체지향은 큰 프로젝트에서 사용하기 적합하다 물론 소규모 프로젝트에서도 사용하기에 좋다. 그 이유로는 객체마다 자신에게 부여된 기능이 있기 때문에 수정과 업데이트에 ..

c++ 2021.08.30

[c++]디폴트 복사 생성자

디폴트 복사 생성자란, 말 그대로 따로 지정해주지 않아도 기본으로 생성되는 생성자를 말한다. #include #include using namespace std; class People { int age; char* name; public: People(int age, const char* name) { this->age = age; this->name = new char[strlen(name) + 1]; strcpy(this->name, name); } /*People(People& pl):age(pl.age) {//이 함수가 없으면 디폴트 복사 생성자가 자동으로 생성이 된다. this->name = new char[strlen(pl.name) + 1]; strcpy(this->name,pl.name)..

c++ 2021.03.04

[c++] 함수의 오버로딩( Function Overloding)

함수의 오버로딩이란 이름이 같은 함수를 전달되는 인자를 통해서 구분하는것을 말한다. c언어에서는 int Monster(int level) { level++; return level++; } int Monster(int hp , int attack) { hp++; attack++; return hp; return attack; } 다음과 같이 정의된 함수는 허용하지 않는다 하지만 c++에서는 다음과 같이 구분지어서 사용할 수 있다. int main(void) { Monster(10); Monster(400,40); return 0; }

c++ 2020.12.15
반응형