클래스

    구조체에서 클래스로

    구조체에서 클래스로

    C언어로 잘 만들어진 구조체와 관련 함수들을 클래스로 변경하는 것 자체는 크게 어렵지 않습니다. Complex라는 구조체와 관련 함수를 4번의 변화로 클래스로 변경해 보겠습니다. 1. 구조체와 일반 함수로 구현된 Version1 #pragma once #include struct Complex { doublereal; doubleimag; }; extern void setComplex(Complex &c, double r, double i) { real = r; imag = i; } extern voidreadComplex(char* msg = " 복소수 ="); extern voidprintComplex(char* msg = "복소수 = "); extern voidaddComplex(Complex a,..

    클래스의 멤버 변수나 멤버 함수를 static으로 처리하는 경우

    클래스의 멤버 변수나 멤버 함수를 static으로 처리하는 경우

    클래스 내에서 멤버 변수 앞에 static을 붙인걸 정적 멤버 변수라고 합니다. 클래스에서 선언했던 모든 멤버 변수들은 "객체 단위의 멤버"로 객체들 마다 각기 다른 값을 가질 수 있는 독립된 변수입니다. 예를 들어, Point라는 클래스를 만들고 객체 p1,p2,p3라는 객체를 선언하면 메모리 공간이 각각 생깁니다. 하지만 정적 멤버 변수는 객체마다가 아닌 클래스 단위로 존재합니다. 그렇다면, 왜 정적 멤버 변수가 필요할까요? 이유는 프로그램에서 Point 클래스의 객체가 현재 몇 개인지 알고 싶을 때 클래스의 버전이나 개발 정보를 클래스에 남기고 싶을 때 등등이 있습니다. 정적 멤버 변수에 대해 더 자세하게 말하면 클래스 내부에서 정의하지만 일반 멤버 변수와 달리 객체마다 생기는 자료가 아니라 클래스..