c++类(1.抽象与封装)
类是一种抽象数据类型,声明形式如下:
class ClassName
{
数据成员
函数成员
}
类成员访问控制:
class ClassName
{
public:
公有成员
proteced:
保护成员
}
在关键字pubkic后面声明,它们时类与外部的接口,任何类内,类外函数都可以访问公用数据和函数。
在关键字private后面声明,只允许类中的函数访问,而类外的函数都不能访问。(修饰访问属性关键字可以多次出现)
访问类成员的放法:
1.通过对象来访问成员
对象名.共有成员函数名
对象名。公有数据成员
2.通过对象指针来访问成员
对象的指针->共有成员函数名
对象的指针->共有数据成员
定义函数可以在class内部定义也可以在外部定义
例子
int intarray::getSize()
{
return size;
}
例子:
#include <iostream>
using namespace std;
class intarray
{
int* data;
int size;
int getval(int condition);
public:
void setarray(int len, int* in);
int getSize();
int setVal(int pos, int val);
int getMaxVal();
int getMinVal();
};
int intarray::getMaxVal()
{
int temp = getval(0);
return temp;
}
int intarray::getMinVal()
{
int temp = getval(1);
return temp;
}
void intarray::setarray(int len, int* in)
{
size = len;
data = new int[len];
for (int i = 0; i < len; i++)
data[i] = in[i];
}
int intarray::getSize()
{
return size;
}
int intarray::setVal(int pos, int val)
{
if ((pos < 0) || (pos > size))
return -1;
data[pos] = val;
return 0;
}
int intarray::getval(int condition)
{
int temp = data[0];
for (int i = 0; i < size; i++)
{
if (condition == 0)
{
if (data[i] > temp)
temp = data[i];
}
else
{
if (data[i] < temp)
temp = data[i];
}
}
return temp;
}
int main()
{
intarray array;
int i, size, v, max, min;
int in[] = { 1,2,3,4,5 };
array.setarray(5, in);
size = array.getSize();
cout << "please input" << size << "numbles:" << endl;
for (i = 0; i < size; i++)
{
cin >> v;
array.setVal(i, v);
}
max = array.getMaxVal();
min = array.getMinVal();
cout << "max value is:" << max << endl;
cout << "min value is:" << min << endl;
return 0;
}