类的介绍:
类(class)是结构体(struct)的拓展,不仅能够拥有成员元素,还拥有成员函数。所以在这之前最好先明白struct的用法!
类的定义:
C++中使用关键字 class 来定义类, 其基本形式如下::
class 类名{
public:
//行为或属性
protected:
//行为或属性
private:
//行为或属性
};
访问符说明:
public,protected,private这属于访问说明符。具体权限如下:
public
: 类内 还是 类外 都可以访问。(公共成员)protected
:可以被 类内、派生类或者友元的成员访问,但类外 不能访问。(受保护成员)private
:只能 被 类内 或者友元成员访问,不能 从类外或者派生类中访问。(私有成员)
PS:对于 struct
,它的所有成员都是默认 public
。对于 class
,它的所有成员都是默认 private
。
访问与修改成员元素的值:
方法形同struct
- 对于变量,使用
.
符号。 - 对于指针,使用
->
符号。
只看文字太过乏味看看代码QAQ:
#include<bits/stdc++.h>
using namespace std;
class point{
public:
void setPoint(int x,int y){
xPos=x;
yPos=y;
}
void printPoint(){
cout<<"x="<<x<<endl;
cout<<"y="<<y<<endl;
}
private:
int xPos;
int yPos;
};
int main(){
//利用class输入一个坐标并输出
point A;
A.setPoint(100,-99);
A.printPoint();
return 0;
}
- 类的数据成员中不能使用 auto、extern和register等进行修饰, 也不能在定义时进行初始化, 如 int xPos = 0; //错;
- 类定义时 private 和 public 关键词出现的顺序和次数可以是任意的;
- 结束时的分号不能省略, 切记!(不过回报错)
成员函数:
类内定义方式:
如上方代码。
类外定义方式:
具体框架如下:
返回类型 类名::成员函数名(参数){
//函数体
}
将上文的代码改用类外定义成员函数的代码:
#include<bits/stdc++.h>
using namespace std;
class point{
public:
void setPoint(int x,int y);
void printPoint();
private:
int xPos;
int yPos;
};
void point::printPoint(){//如上面的框架
cout<<"x="<<xPos<<endl;
cout<<"y="<<yPos<<endl;
}
void point::setPoint(int x,int y){
xPos=x;
yPos=y;
}
int main(){
point A;
A.setPoint(100,-99);
A.printPoint();
return 0;
}
总结:
成员函数中可能会用到重载运算符,想学习的可以上网查查资料。
不妨点个赞再走!