반응형

c++ 33

01-02 [C++] 함수 오버로딩 (Function Overloading)

함수 오버로딩의 이해 #include using namespace std; int MyFunc(int num) { return num++; } int MyFunc(int a, int b) { return a + b; } int main() { MyFunc(2); } 함수의 이름은 같지만 생성할 때의 매개변수가 다른게 지정하는 것을 오버로딩이라고 한다. C 언어와는 다르게 C++ 에서는 이러한 방식을 허용한다. 함수호출 시 전달되는 인자를 통해서 호출하고자 하는 함수의 구분이 가낭하기 때문에 구분 짓기가 가능한 것이다. 그렇다면 왜 C++ 은 허용하고 C는 허용하지 않을까? 이유는 호출할 함수를 찾는 방법이 서로 다르기 때문이다. C++은 호출할 함수를 다음 두 가지 정보를 동시에 활용한다. "함수의 이름..

[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++] 문자열 동적 할당하여 저장하기

문자열을 동적 할당하여 저장하는 것을 알아보겠다. NameCard(const char* myname) { int len = strlen(myname) + 1; name = new char[len];//name= new char[strlen(myname)+1]로 줄일 수 있다. strcpy(name,myname); } 생성자에서 바로 동적 할당하여 저장하는 문장이다. 문자열에 길이만큼만 배열에 길이를 할당하여 저장 하는 방식이다. 동정 할당하면 반드시 소멸자(Destructor)를이용해서 데이터를 소멸해줘야 한다.

c++ 2021.02.09
반응형