C++类与对象的基础知识点详细分析
前言
在C++中,类是一种自定义数据类型,可以封装数据和方法,并将其作为对象。本文将详细介绍C++类和对象的相关内容。
类和对象的定义
类是由数据和函数组成的用户自定义数据类型。它可以定义为结构体或类。类定义了一个数据类型,数据类型包含数据成员和成员函数。
一个对象是类的一个实例。对象由数据和函数组成,对象存储在内存中,其成员可以通过使用点运算符(.)来访问。
类的成员
数据成员
数据成员可以是任何C++数据类型,例如int、float、char等。它们是类中的变量,在类中声明。一个数据成员由以下部分组成:
- 访问说明符:用于控制该成员的访问级别(public、private、protected)
- 数据类型:成员变量数据类型
- 变量名称:成员变量名称
例如:
class Person {
public:
int age; // 公有数据成员
private:
int salary; // 私有数据成员
};
成员函数
成员函数是在类中定义的函数。它们可以访问类的数据成员并执行操作。类的成员函数可以是public、private或protected。以下是类成员函数的定义:
class Person {
public: // 公有成员
void set_age(int a); // 成员函数声明
int get_age(void); // 成员函数声明
private: // 私有成员
int age;
};
类和对象的实例
实例化是类和对象的过程,其中类是实例化的模板,而对象是类的实例。使用关键字new
创建对象,从堆中申请内存。
例如:
Person *p = new Person();
可以使用以下方式访问对象的成员:
p->age = 20;
或者
(*p).age = 20;
类的访问权限
类的成员可以是public、private或protected。它们可以通过以下方式进行访问:
- public成员:可以从类的外部访问,也可以从类的内部访问。
- private成员:不能从类的外部访问,只能从类的内部访问。
- protected成员:可以从类的内部和子类中访问,但不能从类的外部访问。
以Person类为例,让我们通过具体的代码示例来实现上述内容:
#include<iostream>
using namespace std;
class Person {
private:
int age;
public:
void set_age(int a) {
age = a;
}
int get_age(void) {
return age;
}
};
int main() {
Person p;
p.set_age(20);
cout << "Age: " << p.get_age() << endl;
return 0;
}
在上面的代码中,我们定义了一个Person类并创建了一个名为p的对象。set_age()函数设置了年龄,并使用get_age()函数获取结果。
示例
以下是一个简单的类,其中使用构造函数和析构函数来实现计数:
#include<iostream>
using namespace std;
class Counter {
private:
static int obj_count;
int count_id;
public:
Counter() {
obj_count++;
count_id = obj_count;
}
~Counter() {
obj_count--;
}
void print(void) {
cout << "Object ID: " << count_id << endl;
}
static int get_count(void) {
return obj_count;
}
};
int Counter::obj_count = 0;
int main() {
Counter c1, c2, c3;
c1.print(); // Output: Object ID: 1
c2.print(); // Output: Object ID: 2
c3.print(); // Output: Object ID: 3
cout << "Number of objects: " << Counter::get_count() << endl; // Output: Number of objects: 3
return 0;
}
在上面的代码中,我们定义了一个计数器类Counter,它包含一个静态成员变量obj_count来存储对象的数量,并使用构造函数和析构函数来更新该值。我们通过调用print()函数来输出对象的唯一ID和get_count()函数来输出对象的数量。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++类与对象的基础知识点详细分析 - Python技术站