C++进一步认识类与对象
类与对象是什么?
在 C++ 中,类是一种自定义的数据类型,它可以封装数据和函数。每个类都可以实例化出多个对象,这些对象都有共同的数据类型和函数行为,称为类的实例或对象。
类的定义
定义一个类,需要确定以下内容:
- 类的名称
- 类的数据成员
- 类的成员函数
下面是一个简单的类的定义:
class Box {
public:
double length; // 长度
double breadth; // 宽度
double height; // 高度
};
这个类名为Box,其中有三个数据成员:length、breadth、height,都是双精度浮点数。
类的访问修饰符
类的访问修饰符包括 public、private 和 protected,它们决定类的成员谁可以访问。
- public:所有的成员函数和派生类的对象都可以访问它
- private:只有该类的成员函数可以访问它。不能在该类外面访问该类的私有成员变量或私有成员函数
- protected:只能通过派生类的对象来访问它
对象的定义
类定义后,需要实例化一个对象体现出类的特性。下面是一个对象的定义:
Box box1;
这个定义创建了一个名为 box1 的 Box 类型的对象。现在,可以给对象赋值:
box1.breadth = 5.0;
box1.height = 6.0;
box1.length = 7.0;
成员函数
成员函数是类定义中的函数,它们可以访问类的数据成员。下面是一个简单的成员函数:
class Box {
public:
double length; // 长度
double breadth; // 宽度
double height; // 高度
double getVolume() {
return length * breadth * height;
}
};
这个类定义了一个 getVolume() 函数,计算盒子的体积并返回结果。可以通过以下代码调用该函数:
Box box1, box2;
box1.length = 5.0;
box1.breadth = 6.0;
box1.height = 7.0;
// volume of box1
cout << "Box1 的体积:" << box1.getVolume() << endl;
示例1:复数类
下面是一个复数类的示例,类的私有成员有实部(real)和虚部(imag):
class Complex {
private:
int real; // 实部
int imag; // 虚部
public:
Complex(int r=0, int i=0) { // 构造函数
real = r;
imag = i;
}
void setReal(int r) {
real = r;
}
void setImag(int i) {
imag = i;
}
void display() {
cout << real << " + i" << imag << endl;
}
Complex operator+(Complex const &obj) { // 运算符重载
Complex res;
res.real = real + obj.real;
res.imag = imag + obj.imag;
return res;
}
};
以上代码定义了 Complex 类,有两个数据成员 real 和 imag,还定义了构造函数、三个成员函数和一个运算符重载函数。
现在,可以创建 Complex 类型的对象:
Complex c1(2, 3), c2(4, 5), c3;
c3 = c1 + c2;
c3.display();
可以看到,c3 是 c1 和 c2 相加的结果。
示例2:人员信息类
下面是一个人员信息类的示例,类的私有成员有姓名、年龄、性别和电话:
class Person {
private:
string name; // 名称
int age; // 年龄
char sex; // 性别
string phone; // 电话
public:
Person(string n, int a, char s, string p) { // 构造函数
name = n;
age = a;
sex = s;
phone = p;
}
void display() {
cout << "姓名:" << name << endl;
cout << "年龄:" << age << endl;
cout << "性别:" << sex << endl;
cout << "电话:" << phone << endl;
}
};
以上代码定义了 Person 类,有四个私有成员变量,还定义了一个构造函数和一个成员函数 display(),用于输出人员信息。
现在,可以创建 Person 类型的对象:
Person p("Tom", 18, 'M', "13888888888");
p.display();
可以看到,创建的对象 p 包含了人员的基本信息,并通过 display() 函数输出。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++进一步认识类与对象 - Python技术站