-
类的实质是一种数据类型,类似于int、char等基本类型,不同的是它是一种复杂的数据类型。因为它的本质是类型,而不是数据,所以不存在于内存中,不能被直接操作,只有被实例化为对象时,才会变得可操作。
- 类定义
class 类名{
public:
//公有成员。
private:
//私有成员
protected:
//保护成员
};
-
公有成员、私有成员、保护成员均包含数据成员和成员函数两部分,彼此没有顺序之分。一个public/private/protected关键字下可以跟多个成员,直到下一个public/private/protected关键字。如果成员前面没有public/private/protected关键字,默认为私有成员。
-
private 表示该部分内容是私密的, 不能被外部所访问或调用, 只能被本类内部访问; 而 public 表示公开的属性和方法, 外界可以直接访问或者调用。
-
一般来说类的属性成员都应设置为private, public只留给那些被外界用来调用的函数接口, 但这并非是强制规定, 可以根据需要进行调整。
-
类的数据成员是类型,所以不能被赋值,声明数据成员和声明普通变量的格式相同,比如“int n;”。
-
举例
在类定义时定义成员函数。
#include <iostream>
using namespace std;
class Point{
public:
void setPoint(int x, int y){ //实现setPoint函数
xPos = x;
yPos = y;
}
void printPoint(){ //实现printPoint函数
cout<< "x = " << xPos << endl;
cout<< "y = " << yPos << endl;
}
private:
int xPos;
int yPos;
};
int main(){
Point M; //用定义好的类创建一个对象 点M
M.setPoint(10, 20); //设置 M点 的x,y值
M.printPoint(); //输出 M点 的信息
return 0;
}
在类外定义成员函数。
返回类型 类名::成员函数名(参数列表)
#include <iostream>
using namespace std;
class Point{
public:
void setPoint(int x, int y); //在类内对成员函数进行声明
void printPoint();
private:
int xPos;
int yPos;
};
void Point::setPoint(int x, int y) {//通过作用域操作符 '::' 实现setPoint函数
xPos = x;
yPos = y;
}
void Point::printPoint() { //实现printPoint函数
cout<< "x = " << xPos << endl;
cout<< "y = " << yPos << endl;
}
int main(){
Point M; //用定义好的类创建一个对象 点M
M.setPoint(10, 20); //设置 M点 的x,y值
M.printPoint(); //输出 M点 的信息
return 0;
}