Programming/C++

    [C++] 클래스

    클래스는 객체 지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 메서드를 정의하는 일종의 틀이며 내부적으로 객체를 정의하기 위한 상태 값을 의미하는 멤버 변수와 클래스의 동작인 함수로 구성된다. 객체 지향 프로그래밍에서는 모든 데이터를 객체(object)로 취급하며 이 객체들의 조합으로 프로그래밍을 하는 방식을 의미한다. C++에서 클래스(class)란 구조체(struct)의 상위 호환으로 이해할 수 있다. 구조체와 다른점은 접근 제어 지시자가 추가되었고 함수를 포함할 수 있다는 점이다.

    [C++] 접근제한자

    public public으로 선언된 데이터 멤버 및 멤버함수는 다른 클래스에서도 접근이 가능하다. public 멤버는 . 연산자를 사용하여 프로그램의 아무곳에서나 접근 할 수 있다. #include using namespace std; class Circle { public : double radius; double print_area() { return 3.14 * radius * radius; } }; int main(void) { Circle circle; circle.radius = 5; cout

    [C++] 구조체

    구조체는 사용자 정의 데이터 형식으로 다른 유형의 항목들을 단일 유형으로 그룹화하는데 사용한다. 쉽게말해 int, char, double과 같은 자료형을 사용자가 임의로 만드는 것이다. 구조체 만드는 방법 struct 키워드를 사용하여 구조체를 작성한다. struct student { char name[20]; char address[100]; int age; };

    [C++] 포인터

    [C++] 포인터

    주소 변수 등에서 어떤 데이터를 저장하기 위해 메모리에서 저장할 공간을 할당받는다. 그럼 이 데이터를 찾아서 호출하기 위해서는 이 데이터가 메모리 어느 부분에 저장되어 있는지를 알아야 한다. 이때 데이터가 저장된 메모리의 시작 주소를 주소 값이라고 한다. 예를 들어 int형 데이터를 저장하기 위해 변수를 하나 선언했다면 4 bytes 크기로 메모리에 공간이 할당된다. 주소: 0x0001 / 변수로 할당 받은곳 주소: 0x0002 / 변수로 할당 받은곳 주소: 0x0003 / 변수로 할당 받은곳 주소: 0x0004 / 변수로 할당 받은곳 주소: 0x0005 주소: 0x0006 주소: ..... 이런 식으로 총 4 bytes크기의 공간이 할당되고 이 공간의 시작 주소인 0x0001이 해당 변수를 가리키는 주..

    [C++] Template

    [C++] Template

    함수를 다중정의하는 이유는 사용자의 편의성과 확장성을 얻을 수 있기 때문이다. 하지만 함수를 다중정의 한느 것은 같은 일을 하는 코드가 다중으로 정의된 함수가 여러개로 존재하는 것이고 이는 유지보수 측면에서 보면 불필요한 코드만 늘어나 메모리를 소모하는 꼴이다. 따라서 C++에서는 가급적이면 함수를 다중정의 하는 것보다 함수 템플릿을 사용하는 것을 권장하고 있다. 함수템플릿의 형태 template 반환형식 함수이름(매개변수) { } 예제 #include using namespace std; template void TestFunc(T a){ cout

    [C++] namespace, using

    namespace C++가 지원하는 각종 요소들(변수, 함수, 클래스)을 한 범주로 묶어주기 위한 문법이다. 네임스페이스를 이용해 소속을 나누면 큰 프로그램을 만들 때 이름이 겹치는 문제를 쉽게 방지할 수 있다. #include using namespace std; namespace TEST { int data = 100; void TestFunc(){ cout

    [C++] 함수

    [C++] 함수

    Default Parameter 매개변수의 default값을 선언한 함수는 호출자 코드에서 실수를 생략한채로 호출이 가능하다. 이때 매개변수의 default값은 반드시 함수 원형의 선언부분에 작성해야한다. #include using namespace std; int TestFunc(int = 10); int TestFunc(int nParam){ return nParam; } int main(){ cout