산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C++ 클래스 및 개체

C++ 클래스 및 개체

이 튜토리얼에서는 객체와 클래스에 대해 배우고 예제를 통해 C++에서 사용하는 방법을 배웁니다.

이전 자습서에서 함수와 변수에 대해 배웠습니다. 때로는 논리적이고 작업하기 쉽도록 관련 기능과 데이터를 한 곳에 배치하는 것이 바람직합니다.

직사각형 방의 길이, 너비, 높이를 저장하고 면적과 부피를 계산해야 한다고 가정합니다.

이 작업을 처리하기 위해 length와 같은 세 개의 변수를 만들 수 있습니다. , 너비 , 및 높이 calculateArea() 기능과 함께 및 calculateVolume() .

그러나 C++에서는 별도의 변수와 함수를 만드는 대신 이러한 관련 데이터와 함수를 한 곳에서 래핑할 수도 있습니다(객체 ). 이러한 프로그래밍 패러다임을 객체 지향 프로그래밍이라고 합니다.

하지만 객체를 만들기 전에 C++에서 사용하려면 먼저 클래스에 대해 알아야 합니다. .

<시간>

C++ 클래스

클래스는 객체의 청사진입니다.

우리는 클래스를 집의 스케치(프로토타입)로 생각할 수 있습니다. 여기에는 바닥, 문, 창문 등에 대한 모든 세부 정보가 포함되어 있습니다. 이러한 설명을 기반으로 집을 짓습니다. 집이 오브제입니다.

수업 만들기

클래스는 class 키워드를 사용하여 C++로 정의됩니다. 뒤에 클래스 이름이 옵니다.

클래스의 본문은 중괄호 안에 정의되며 끝에 세미콜론으로 종료됩니다.

class className {
   // some data
   // some functions
};

예를 들어,

class Room {
    public:
        double length;
        double breadth;
        double height;   

        double calculateArea(){   
            return length * breadth;
        }

        double calculateVolume(){   
            return length * breadth * height;
        }

};

여기에서 Room라는 클래스를 정의했습니다. .

변수 길이 , 너비 , 및 높이 클래스 내부에 선언된 것을 데이터 멤버라고 합니다. . 그리고 함수 calculateArea()calculateVolume() 멤버 함수라고 합니다. 수업 중입니다.

<시간>

C++ 개체

클래스가 정의되면 개체에 대한 사양만 정의됩니다. 메모리나 스토리지가 할당되지 않았습니다.

클래스에 정의된 데이터 및 접근 기능을 사용하려면 객체를 생성해야 합니다.

<시간>

C++에서 개체를 정의하는 구문

className objectVariableName;

Room 객체를 생성할 수 있습니다. 클래스(위의 예에서 정의됨)는 다음과 같습니다.

// sample function
void sampleFunction() {
    // create objects
    Room room1, room2;
}

int main(){
    // create objects 
    Room room3, room4;
}

여기 두 개의 개체 room1방2 Room의 클래스는 sampleFunction()에서 생성됩니다. . 마찬가지로 room3 개체는 및 방4 main()에서 생성됩니다. .

보시다시피 프로그램의 모든 기능에서 클래스의 개체를 만들 수 있습니다. 클래스 자체 또는 다른 클래스에서 클래스의 개체를 만들 수도 있습니다.

또한 단일 클래스에서 원하는 만큼 개체를 만들 수 있습니다.

<시간>

C++ 액세스 데이터 멤버 및 멤버 함수

.을 사용하여 클래스의 데이터 멤버 및 멤버 함수에 액세스할 수 있습니다. (점) 연산자. 예를 들어,

room2.calculateArea();

그러면 calculateArea()이 호출됩니다. Room 내부의 함수 room2 개체에 대한 클래스 .

마찬가지로 데이터 멤버는 다음과 같이 액세스할 수 있습니다.

room1.length = 5.5;

이 경우 length를 초기화합니다. room1의 변수 5.5으로 .

<시간>

예제 1:C++ 프로그래밍의 객체 및 클래스

// Program to illustrate the working of
// objects and class in C++ Programming

#include <iostream>
using namespace std;

// create a class
class Room {

   public:
    double length;
    double breadth;
    double height;

    double calculateArea() {
        return length * breadth;
    }

    double calculateVolume() {
        return length * breadth * height;
    }
};

int main() {

    // create object of Room class
    Room room1;

    // assign values to data members
    room1.length = 42.5;
    room1.breadth = 30.8;
    room1.height = 19.2;

    // calculate and display the area and volume of the room
    cout << "Area of Room =  " << room1.calculateArea() << endl;
    cout << "Volume of Room =  " << room1.calculateVolume() << endl;

    return 0;
}

출력

Area of Room =  1309
Volume of Room =  25132.8

이 프로그램에서는 Room을 사용했습니다. 클래스 및 해당 개체 room1 방의 면적과 부피를 계산합니다.

main()에서 , length 값을 할당했습니다. , 너비 , 및 높이 코드:

room1.length = 42.5;
room1.breadth = 30.8;
room1.height = 19.2;

그런 다음 calculateArea() 함수를 호출했습니다. 및 calculateVolume() 필요한 계산을 수행합니다.

public 키워드의 사용에 유의하십시오. 프로그램에서. 이는 회원이 공개되어 있으며 프로그램의 어디에서나 액세스할 수 있음을 의미합니다.

필요에 따라 private을 사용하여 비공개 멤버를 만들 수도 있습니다. 예어. 클래스의 private 멤버는 클래스 내에서만 액세스할 수 있습니다. 예를 들어,

class Test {

private:
    int a;
    void function1() { }

public:
    int b;
    void function2() { }
}

여기서 afunction1() 비공개입니다. 따라서 클래스 외부에서 액세스할 수 없습니다.

반면에 bfunction2() 프로그램의 모든 곳에서 액세스할 수 있습니다.

공개 및 비공개 키워드에 대해 자세히 알아보려면 C++ 클래스 액세스 수정자 자습서를 방문하세요.

<시간>

예제 2:C++ 클래스에서 공개 및 비공개 사용

// Program to illustrate the working of
// public and private in C++ Class

#include <iostream>
using namespace std;

class Room {

   private:
    double length;
    double breadth;
    double height;

   public:

    // function to initialize private variables
    void initData(double len, double brth, double hgt) {
        length = len;
        breadth = brth;
        height = hgt;
    }

    double calculateArea() {
        return length * breadth;
    }

    double calculateVolume() {
        return length * breadth * height;
    }
};

int main() {

    // create object of Room class
    Room room1;

    // pass the values of private variables as arguments
    room1.initData(42.5, 30.8, 19.2);

    cout << "Area of Room =  " << room1.calculateArea() << endl;
    cout << "Volume of Room =  " << room1.calculateVolume() << endl;

    return 0;
}

출력

Area of Room =  1309
Volume of Room =  25132.8

위의 예는 클래스 변수가 이제 private이라는 점을 제외하고는 첫 번째 예와 거의 동일합니다.

변수는 이제 비공개이므로 main()에서 직접 액세스할 수 없습니다. . 따라서 다음 코드를 사용하는 것은 유효하지 않습니다.

// invalid code
obj.length = 42.5;
obj.breadth = 30.8;
obj.height = 19.2;

대신 공개 함수 initData()를 사용합니다. 함수 매개변수 double len를 통해 개인 변수를 초기화하려면 , double brthdouble hgt .

개체 및 클래스에 대해 자세히 알아보려면 다음 항목을 방문하십시오.


C 언어

  1. C# 클래스 및 개체
  2. C# 추상 클래스 및 메서드
  3. C# 부분 클래스 및 부분 메서드
  4. C# 봉인된 클래스 및 메서드
  5. C++ friend 함수 및 friend 클래스
  6. C++ 클래스 템플릿
  7. 자바 클래스와 객체
  8. C++의 구조 및 클래스
  9. 구조체와 클래스의 차이점:C++ 예제로 설명
  10. C++의 스토리지 클래스