一下纯属个人的理解,肯定有不是很正确的地方,望指出,感谢!!
class是一个类似于struct的一个东西,区别就是class中可以“储存”函数,并且在class中使用,class中的内容可以分为三种状态:
1.public(共有内容,任何人都可使用)
2.private(个人私有内容,只有该class本身可用)
3.protected(个人感觉不常用,只有同一个class的其他成员可以访问这些成员);
现在主要介绍public和private,剩下的那个等以后会了再加上;
class中默认的属性是private(私有),而且public只对接下来的一个内容有效,因此每定义一个内容,就要使用一次对应的内容
上代码,有代码一切都好说:
这是一个求面积的示例:
#include<stdio.h>
#include<string.h>
#include<math.h>
//#include<map>
#include<set>
#include<deque>
#include<queue>
#include<stack>
#include<string>
#include<iostream>
#include<algorithm>
using namespace std;
#define ll long long
#define da 0x3f3f3f3f
#define xiao -0x3f3f3f3f
#define clean(a,b) memset(a,b,sizeof(a))// 水印头文件
class ac{
int a,b;//默认是私有的private属性
public://一个属性应该只对下面一个函数/变量有效
void assignment(int x,int y);//赋值
// {
// a=x;//内部可以直接使用private的内容
// b=y;
// }
public://仍要继续定义一个共有内容
void mix()
{
cout<<"area:"<<a*b<<endl;
}
// public://和上面的一个作用,只不过带有返回值
// int mixx()
// {
// return a*b;
// }
};
void ac::assignment(int x,int y)//赋值函数//和直接写在class中是一个效果
{
a=x;
b=y;
}
int main()
{
ac now;//创建一个class
int a,b;
cin>>a>>b;
now.assignment(a,b);//用“.”调用对应的函数输入对应的变量
now.mix();//调用求面积函数
//cout<<"area:"<<now.mixx()<<endl;//输出带有返回值的class内容
}
噢!对了,还可以单独操作class中的函数,如上例:
可以把class中的函数提出来,单独定义:void ac(class的名字)::对应的函数名(变量)
{下面就是函数体了,和正常的函数定义差不多
}