목록𝐏𝐑𝐎𝐆𝐑𝐀𝐌𝐌𝐈𝐍𝐆/𝐂++ (32)
도순씨의 코딩일지
C++의 구조체 배열은 C언어와 유사한 면이 많습니다. 🌼 객체 배열 객체 기반 배열은 다음과 같은 형태로 선언합니다. 1 SoSimple arr[10]; cs 동적으로 할당하는 경우에는 다음과 같은 형태로 선언합니다. 1 SoSimple * ptrArr = new SoSimple[10] cs 이러한 형태를 선언하면 열 개의 SoSimple 객체가 모여 배열을 구성합니다. 배열 선언을 하는 경우에도 생성자는 호출이 됩니다. 단, 배열의 선언 과정에서는 호출 생성자를 별도로 명시하지 못합니다. 따라서 원하는 값으로 초기화하고 싶다면 초기화의 과정을 별도로 거쳐야 합니다. 다음 예제를 살펴보도록 합시다. ⭐️ ObjArr.cpp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18..
매개변수들을 초기하기 위해서 함수를 정의해주었는데, 매우 번거로운 일이었습니다. 이러한 불편함을 막기 위해서 생성자가 만들어졌습니다. 생성자를 이용하여 객체도 생성과 동시에 초기화할 수 있습니다. 🌼 생성자의 이해 생성자의 이해를 위해서 간단한 클래스 하나를 살펴보도록 합시다. 1 2 3 4 5 6 7 8 9 10 11 class SimpleClass{ private: int num; public: SimpleClass(int n){ // 생성자 num = n; } int GetNum() const{ return num; } }; Colored by Color Scripter cs 위 클래스 정의에서 SimpleClass라는 함수를 확인할 수 있습니다. 이 함수는 클래스와 이름이 동일하고 반환형이 선언되..
캡슐화와 정보은닉은 구분하기 쉽지 않습니다. 먼저 캡슐화가 왜 중요한지 코드를 살펴보며 알아보도록 하겠습니다. ⭐️ Encaps1.cpp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 #include using namespace std; class SinivelCap{ // 콧물 처치용 캡슐 public: void Take() const {cout
정보은닉은 말 그대로 정보를 숨기는 것을 의미합니다. 이렇게 말하면 조금 와닿지 않는 감이 있습니다. 그래서 먼저 예제를 살펴보도록 하겠습니다. ⭐️ 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #include using namespace std; class Point{ public: int x; int y; }; class Rectangle{ public: Point upLeft; Point lowRight; public: void ShowRecInfo(){ cout
C++은 클래스 별로 헤더파일과 소스 파일을 생성하기 때문에 많은 수의 파일이 만들어집니다. 파일분할은 다음과 같은 기준으로 나누어집니다. 💡 ~.h : 클래스의 선언을 담는다 💡 ~.cpp: 클래스의 정의 (멤버함수의 정의)를 담는다 클래스의 선언은 다음과 같습니다. 1 2 3 4 5 6 7 8 9 10 11 class Car{ private: char gamerID[CAR_CONST :: ID_LEN]; int fuelGauge; int curSpeed; public: void InitMembers(char * ID, int fuel); void ShowCarState(); void Accel(); void Break(); }; Colored by Color Scripter cs 위의 코드들은 클래스..
이미 언어를 여러 개 익힌 뒤라 그런지 모르겠지만 대충 내용을 훑어보면 어떤 내용일지 예상이 간다. 그런데 이번에 살펴본 이름공간은 (나에게는) 너무나도 생소한 개념이었다. 이름공간은 이름의 충돌을 막기 위한 것이다. 다음 코드를 통해서 살펴보도록 하자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include void SimpleFunc(void){ std::cout
1) 함수 오버로딩(Function Overloading) C언어에서는 동일한 이름의 함수가 정의되는 것을 허용하지 않는다. 함수의 다형성을 위해서 다양한 매개변수를 이용할 수 있도록 C++에서는 동일한 이름의 함수가 정의되는 것을 허용한다. 함수호출 시 전달되는 인자를 통해서 호출하고자 하는 함수의 구분이 가능하다. 함수 오버로딩 코드 예제는 다음과 같다. @ 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include void MyFunc(void){ std::cout