类和对象
类是对象的抽象,对象是类的实例化;
万物皆可对象;
类的定义格式
class 类名
{
public:
数据成员;//属性
成员函数{}//方法
private:
数据成员;
成员函数{}
protected:
数据成员;
成员函数{}
};
注意分号结尾。其中public、private、protected属于成员访问权限限定符。
public:在类内和类外都可以进行访问
private:只能在类内进行访问
protected:只能在类内访问,不能在类外访问,可以进行继承访问。
私有成员不能在类外访问,如果要访问类的私有成员,需要使用类的公有成员函数接口。
练习题目
封装一个类:
私有成员为:一个长度为8的整形数组
公有成员为:
输出函数:输出数组中所有内容;
输入函数:输入数组所有元素;
求和函数:求得数组中所有元素的和
排序函数:将数组中的元素进行升序排序
要求:成员函数类内声明,类外定义。
#include <iostream>
using namespace std;
class student
{
public:
//成员函数的声明
void put_val();
void in_val();
int sum_val();
void sort_val();
private:
int socre[8]; //私有成员存放8个整形
};
//输出函数:输出数组中的所有内容
void student :: put_val()
{
cout<<"输出数组:";
for(int i=0; i<8; i++)
{
cout<<socre[i]<<'\t';
}
cout<<endl;
}
//输入函数:外部输入所有元素
void student :: in_val()
{
for(int i=0; i<8; i++)
{
cout<<"请输入第"<<i+1<<"个学生的成绩(正整数):";
cin>>socre[i];
}
}
//求和函数:求出数组中所有元素之和
int student :: sum_val()
{
int sum=0;
for(int i=0; i<8; i++)
{
sum = sum+socre[i];
}
return sum;
}
//排序函数:将数组的元素进行升序排序
void student :: sort_val()
{
int temp;
//冒泡排序实现升序排序
for(int i=0; i<8; i++)
{
for(int j=0; j<7-i; j++)
{
if(socre[j] > socre[j+1])
{
temp = socre[j];
socre[j] = socre[j+1];
socre[j+1] = temp;
}
}
}
}
int main()
{
student s1; //用student类定义一个叫s1
//调用函数外部输入数据
s1.in_val();
//调用函数输出数组元素
s1.put_val();
//调用函数对数组进行升序排序
s1.sort_val();
cout<<"升序排序后"<<endl;
//调用函数输出排序后的数组
s1.put_val();
//调用函数输出数组总和
cout<<"数组总和为:"<<s1.sum_val()<<endl;
return 0;
}