C ++ 클래스 및 객체

C ++ 프로그래밍의 주요 목적은 C 프로그래밍 언어에 객체 지향을 추가하는 것이며 클래스는 객체 지향 프로그래밍을 지원하고 종종 사용자 정의 유형이라고하는 C ++의 핵심 기능입니다.

클래스는 객체의 형태를 지정하는 데 사용되며 데이터 표현과 해당 데이터를 하나의 깔끔한 패키지로 조작하기위한 메서드를 결합합니다. 클래스 내의 데이터와 함수를 클래스의 멤버라고합니다.

C ++ 클래스 정의

클래스를 정의 할 때 데이터 유형에 대한 청사진을 정의합니다. 이것은 실제로 데이터를 정의하지는 않지만 클래스 이름이 의미하는 바, 즉 클래스의 객체가 구성되는 것과 그러한 객체에서 수행 할 수있는 작업을 정의합니다.

클래스 정의는 키워드로 시작합니다. class클래스 이름이 뒤 따릅니다. 클래스 본문은 중괄호 쌍으로 묶여 있습니다. 클래스 정의 뒤에는 세미콜론 또는 선언 목록이 와야합니다. 예를 들어, 우리는 키워드를 사용하여 Box 데이터 유형을 정의했습니다.class 다음과 같이-

class Box {
   public:
      double length;   // Length of a box
      double breadth;  // Breadth of a box
      double height;   // Height of a box
};

키워드 public뒤에 오는 클래스 멤버의 액세스 속성을 결정합니다. 공용 멤버는 클래스 개체 범위 내의 모든 클래스 외부에서 액세스 할 수 있습니다. 클래스의 멤버를 다음과 같이 지정할 수도 있습니다.private 또는 protected 하위 섹션에서 논의 할 것입니다.

C ++ 개체 정의

클래스는 객체에 대한 청사진을 제공하므로 기본적으로 객체는 클래스에서 생성됩니다. 기본 유형의 변수를 선언하는 것과 똑같은 종류의 선언으로 클래스의 객체를 선언합니다. 다음 명령문은 Box 클래스의 두 객체를 선언합니다-

Box Box1;          // Declare Box1 of type Box
Box Box2;          // Declare Box2 of type Box

Box1 및 Box2 개체는 모두 데이터 멤버의 자체 복사본을 갖습니다.

데이터 멤버에 액세스

클래스 개체의 공용 데이터 멤버는 직접 멤버 액세스 연산자 (.)를 사용하여 액세스 할 수 있습니다. 명확하게하기 위해 다음 예제를 시도해 보겠습니다.

#include <iostream>

using namespace std;

class Box {
   public:
      double length;   // Length of a box
      double breadth;  // Breadth of a box
      double height;   // Height of a box
};

int main() {
   Box Box1;        // Declare Box1 of type Box
   Box Box2;        // Declare Box2 of type Box
   double volume = 0.0;     // Store the volume of a box here
 
   // box 1 specification
   Box1.height = 5.0; 
   Box1.length = 6.0; 
   Box1.breadth = 7.0;

   // box 2 specification
   Box2.height = 10.0;
   Box2.length = 12.0;
   Box2.breadth = 13.0;
   
   // volume of box 1
   volume = Box1.height * Box1.length * Box1.breadth;
   cout << "Volume of Box1 : " << volume <<endl;

   // volume of box 2
   volume = Box2.height * Box2.length * Box2.breadth;
   cout << "Volume of Box2 : " << volume <<endl;
   return 0;
}

위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 생성됩니다.

Volume of Box1 : 210
Volume of Box2 : 1560

개인 및 보호 된 구성원은 직접 구성원 액세스 연산자 (.)를 사용하여 직접 액세스 할 수 없다는 점에 유의해야합니다. 개인 및 보호 된 구성원에 액세스하는 방법을 배웁니다.

세부 클래스 및 개체

지금까지 C ++ 클래스 및 객체에 대한 매우 기본적인 아이디어를 얻었습니다. C ++ 클래스 및 객체와 관련된 더 흥미로운 개념이 있으며 아래 나열된 다양한 하위 섹션에서 논의 할 것입니다.

Sr. 아니요 개념 및 설명
1 클래스 멤버 함수

클래스의 멤버 함수는 다른 변수와 마찬가지로 클래스 정의 내에 정의 또는 프로토 타입이있는 함수입니다.

2 클래스 액세스 수정 자

클래스 멤버는 public, private 또는 protected로 정의 할 수 있습니다. 기본적으로 구성원은 개인으로 간주됩니다.

생성자 및 소멸자

클래스 생성자는 클래스의 새 객체가 생성 될 때 호출되는 클래스의 특수 함수입니다. 소멸자는 생성 된 객체가 삭제 될 때 호출되는 특수 함수이기도합니다.

4 생성자 복사

복사 생성자는 이전에 생성 된 동일한 클래스의 객체로 초기화하여 객체를 생성하는 생성자입니다.

5 친구 기능

friend 함수는 클래스의 개인 및 보호 멤버에 대한 전체 액세스가 허용됩니다.

6 인라인 함수

인라인 함수를 사용하면 컴파일러는 함수 호출 대신 함수 본문의 코드를 확장하려고합니다.

7 이 포인터

모든 개체에는 특별한 포인터가 있습니다. this 객체 자체를 가리 킵니다.

8 C ++ 클래스에 대한 포인터

클래스에 대한 포인터는 구조에 대한 포인터와 똑같은 방식으로 수행됩니다. 사실 클래스는 함수가있는 구조 일뿐입니다.

9 클래스의 정적 멤버

클래스의 데이터 멤버와 함수 멤버는 모두 정적으로 선언 될 수 있습니다.