C++에는 두 가지 종류의 멤버 데이터(정적, nostatic)가 있고 세 가지 종류의 멤버 함수(정적, nostatic, 가상)가 있다는 것을 알아야 합니다. 실제로 일반 멤버 함수의 경우 매개변수에 this 포인터가 있습니다. 이 포인터는 실제로 이 포인터를 통해 개체 자체를 가리킵니다. C++ 컴파일러는 어떤 객체가 클래스의 멤버 함수를 호출하는지 알게 됩니다.
C++에는 두 가지 종류의 멤버 데이터(정적, nostatic)가 있고 세 가지 종류의 멤버 함수(정적, nostatic, 가상)가 있다는 것을 알아야 합니다.
아래 사례를 보세요:
class A { int a; int b; };class B { int a; int b; static int c; };class C { int a; int b; static int c;public: void func() {} static void pg() {} };int main() { //1. 分析A对象占的内存 A a; cout << sizeof(a) << endl; //结果是8 //2. 分析B对象占的内存 B b; cout << sizeof(b) << endl; //结果是8 //3. 分析C对象占的内存 C c; cout << sizeof(c) << endl; //结果是8 return 0; }
실제로 출력 결과를 바탕으로 다음과 같은 결론을 내립니다.
a. 멤버 변수:
요약하자면:
a C++ 클래스 개체의 멤버 변수와 멤버 함수는
정적 멤버 함수에는 특정 개체를 가리키는 this 포인터가 포함되어 있지 않지만 일반 멤버 함수에는 특정 개체를 가리키는 포인터가 포함되어 있습니다.
기사 개요
다음 문제를 해결해야 합니다.
a C++ 클래스 개체의 멤버 변수와 멤버 함수가 함께 저장되어 있나요? 그렇지 않다면?
아래 사례를 보세요:
class A { int a; int b; };class B { int a; int b; static int c; };class C { int a; int b; static int c;public: void func() {} static void pg() {} };int main() { //1. 分析A对象占的内存 A a; cout << sizeof(a) << endl; //结果是8 //2. 分析B对象占的内存 B b; cout << sizeof(b) << endl; //结果是8 //3. 分析C对象占的内存 C c; cout << sizeof(c) << endl; //结果是8 return 0; }
b C++ 클래스의 일반 멤버 함수입니다. 그러나 정적 멤버 함수는 제외) 모두 현재 객체를 가리키는 this 포인터를 포함합니다. 정적 멤버 함수와 정적 멤버 변수는
d 클래스에 속합니다. 기능:
Php 객체 지향 추상 클래스
PHP 객체에 대한 자세한 설명 지향 프로그래밍: 클래스 및 객체_PHP 튜토리얼
위 내용은 기술적 답변 객체 지향(C++ 클래스)에 대한 예비 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!