Class 5
-
C++에서 template를 사용하는 방법 중, 자료 형 이 아닌 매개변수를 template로 사용하는 방법이 있다. #include using namespace std; // 자료형이 아닌 매개변수를 받아오는 템플릿 template class MyArray { public: MyArray() = default; ~MyArray() {} T& operator[](int index) { return arr2[index]; } private: T arr1[10]; // 상수만 들어가면서 형태만 띄고있는것. T arr2[SIZE]; }; int main() { MyArray arr1; MyArray arr2; for (int i = 0; i < 30; i++) arr1[i] = i; for (int i = 0..
-
C++에서의 다형성인 오버로딩, 오버라이딩 중 오버 라이딩을 사용하는 부모자식 클레스에 대한 내용이다. C++ 에서는 부모자식 클래스에 대한 함수 오버라이딩과 privet을 제외한 함수 공유가 가능하다. 이는 부모클래스와 자식클래스로 이어지는 것을 이야기한다. 예를들어 책이라는 묶음에 책내용이라는 자식이 있는 격 이다. 부모클래스와 자식클래스의 관계에서는 부모클래스는 기본적인 특성과 동작을 정의하고, 자식클래스는 이러한 특성과 동작을 상속받아 추가적인 기능을 추가하거나 변경할 수 있다. ( 변경은 함수 오버라이딩을 의미한다 ) 이를 통해 코드의 확장성과 유연성을 증가시킬 수 있다. 다음 코드는 기본적인 부모자식클래스의 예시이다. 코드예시는 다음과 같다. class Mother { private: int ..
-
Class의 함수는 헤더와 cpp로 분리하여 사용할 수 있다. 위와 같이 헤더에는 선언된 함수의이름과 반환형을 선언해주고. cpp에는 해당 함수가 동작하는 동작문을 같은 이름으로, Class의 이름과 함께 선언해주면 된다. 위 13번 문단을 해석해보면, Calcu값을 리턴으로 돌려주는, Calcu라는 Class에 속한 Sub라는 함수가 int형의 value매개변수를 받아서 동작한다. 라는 뜻이다. 또한, 헤더 에서 cpp로 함수명을 가져올 때 에는 inline이 선언된 것과 같은 효과를 가지는데, 일반적인 함수에 비해 실행속도에 더 큰 이득이 있다. 상수화 시킨 Class에서 어떠한 변수를 수정해야할 경우 mutable 을 사용한다. 만약의 상황에서 cosnt 선언된 것이 변환되어야 할 경우 사용할 수 ..
-
Class는 객체지향 프로그래밍(OOP)에서 사용되는 구조체의 한 종류로 Clas는 데이터와 함수를 함꼐 묶어서 사용할 수 있도록 해주며, 객체를 생성하여 사용할 수 있다. Class의 장점 캡슐화(Encapsulation) 데이터와 관련된 함수를 하나로 묶어서 외부에서 함부로 접근하지 못하게 해 데이터의 손상을 방지하고 코드의 동작성을 보장한다. 상속성(Inheritance) 다른 클래스로부터 기존 함수와 데이터를 물려받아 사용할 수 있으며, 코드의 재사용성을 높인다. 다형성(Polymorphism) 같은 이름의 함수를 다양한 방법으로 사용할 수 있다. 유지보수성(Maintainability) Class는 코드의 재사용성과 가독성을 높여 유지보수가 용이하다. Class의 단점 구현의 복잡성 (Imple..
-
클래스에 대한 문법 - 클래스의 이름은 다음과 같이 작성한다. class 클래스이름 = { } 와 사이에 클래스이 내용을 작성한다 클래스는 맴버 변수와 맴버 메서드의 구성요소를 가진다. 객체의 생성 및 접근 - 클래스로 부터 객체를 생성하기 위해서는 다음과 같은 문법을 따른다. new 클래스 이름(); - new 를 통해 객체를 생성하면 생성된 객체의 메모리의 주소 값을 넘겨준다. 이 주소값을 변수에 받아 두었다가 그 이후에 사용할 때 이 주소값을 이용하여 접근하면 된다. 이 주소값을 담는 변수를 가르켜 참조 변수 라고 부른다. - 참조 변수를 통해 맴버에 접근할 때는 "참조변수.맴버" 라고 기술하여 사용한다. Class의 main에서 코드를 짜고 Class1의 클래스에서 int va를 가져와서 main..