찾다
  • 로그인
  • 가입
비밀번호 재설정 성공

당신이 관심을 갖고 있는 프로젝트를 팔로우하고 그들에 관한 최신 뉴스를 맛보세요

C++ 클래스 및 객체

수집 154
읽다 53379
업데이트 시간 2016-09-11

C++는 C 언어 기반의 객체 지향 프로그래밍을 추가합니다. C++는 객체 지향 프로그래밍을 지원합니다. 클래스는 C++의 핵심 기능이며 종종 사용자 정의 유형이라고도 합니다.

클래스는 데이터 표현과 데이터 처리 방법을 포함하는 객체의 형태를 지정하는 데 사용됩니다. 클래스의 데이터와 메서드를 클래스의 멤버라고 합니다. 클래스의 함수를 클래스의 멤버라고 합니다.

C++ 클래스 정의

클래스 정의는 본질적으로 데이터 유형을 정의하기 위한 청사진입니다. 이는 실제로 데이터를 정의하지는 않지만 클래스 이름이 의미하는 바를 정의합니다. 즉, 클래스의 개체에 포함된 내용과 이 개체에 대해 수행할 수 있는 작업을 정의합니다.

클래스 정의는 class 키워드로 시작하고 그 뒤에 클래스 이름이 옵니다. 클래스의 본문은 한 쌍의 중괄호로 묶입니다. 클래스 정의 다음에는 세미콜론이나 선언 목록이 와야 합니다. 예를 들어 다음과 같이 class 키워드를 사용하여 Box 데이터 유형을 정의합니다.

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;          // 声明 Box1,类型为 Box
Box Box2;          // 声明 Box2,类型为 Box

Box1 및 Box2 개체에는 각각의 데이터 멤버가 있습니다.

데이터 멤버 액세스

클래스 객체의 공개 데이터 멤버는 직접 멤버 액세스 연산자(.)를 사용하여 액세스할 수 있습니다. 이러한 개념을 더 잘 이해하기 위해 다음 예를 시도해 보겠습니다.

#include <iostream>

using namespace std;

class Box
{
   public:
      double length;   // 长度
      double breadth;  // 宽度
      double height;   // 高度
};

int main( )
{
   Box Box1;        // 声明 Box1,类型为 Box
   Box Box2;        // 声明 Box2,类型为 Box
   double volume = 0.0;     // 用于存储体积
 
   // box 1 详述
   Box1.height = 5.0; 
   Box1.length = 6.0; 
   Box1.breadth = 7.0;

   // box 2 详述
   Box2.height = 10.0;
   Box2.length = 12.0;
   Box2.breadth = 13.0;

   // box 1 的体积
   volume = Box1.height * Box1.length * Box1.breadth;
   cout << "Box1 的体积:" << volume <<endl;

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

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

Box1 的体积:210
Box2 的体积:1560

비공개 멤버와 보호 멤버에 직접 액세스할 수 없다는 점에 유의하는 것이 중요합니다. 직접 멤버 액세스 연산자(.)를 사용합니다. 이후 튜토리얼에서 private 및 protected 멤버에 액세스하는 방법을 배우게 됩니다.

클래스와 객체에 대한 자세한 설명

지금까지 우리는 C++ 클래스와 객체에 대한 기본적인 이해를 했습니다. 다음 목록에는 C++ 클래스 및 개체와 관련된 몇 가지 다른 개념도 나열되어 있습니다. 해당 링크를 클릭하면 학습할 수 있습니다.

ConceptDescription
클래스 멤버 함수클래스의 멤버 함수는 클래스 정의의 다른 변수와 마찬가지로 클래스 정의 내부에 정의와 프로토타입이 작성되는 함수를 참조합니다.
클래스 액세스 수정자클래스 구성원은 공개, 비공개 또는 보호로 정의될 수 있습니다. 기본적으로 비공개로 정의됩니다.
Constructor & Destructor 클래스의 생성자는 새 객체가 생성될 때 호출되는 특수 함수입니다. 클래스의 소멸자는 생성된 객체가 삭제될 때 호출되는 특수 함수이기도 합니다.
C++ 복사 생성자 복사 생성자는 객체 생성 시 동일한 클래스에서 이전에 생성된 객체를 사용하여 새로 생성된 객체를 초기화하는 특수 생성자입니다.
C++ 친구 함수친구 함수는 클래스의 비공개 및 보호 멤버에 액세스할 수 있습니다.
C++ 인라인 함수인라인 함수를 사용하면 컴파일러는 함수가 호출되는 지점에서 함수 본문의 코드를 확장하려고 시도합니다.
C++의 이 포인터모든 객체에는 객체 자체를 가리키는 특수 포인터 this가 있습니다.
C++의 클래스에 대한 포인터 클래스에 대한 포인터는 구조에 대한 포인터처럼 동작합니다. 실제로 클래스는 함수가 포함된 구조로 생각할 수 있습니다.
C++ 클래스의 정적 멤버클래스의 데이터 멤버와 함수 멤버 모두 정적으로 선언할 수 있습니다.
핫 AI 도구
Undress AI Tool
Undress AI Tool

무료로 이미지를 벗다

AI Clothes Remover
AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undresser.AI Undress
Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

Stock Market GPT
Stock Market GPT

더 현명한 결정을 위한 AI 기반 투자 연구

인기 있는 도구
메모장++7.3.1
메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6
드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전
SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)