21xrx.com
2024-12-22 21:15:25 Sunday
登录
文章检索 我的文章 写文章
C++中的public和private关键字
2023-07-07 20:45:48 深夜i     --     --
public private 访问控制 封装 成员函数

C++是一种面向对象的编程语言,在使用过程中,经常会涉及到类的访问控制。访问控制指的是类内部成员(函数和变量)的访问权限,包括public、private和protected。

在C++中,public和private是最常用的两个访问控制关键字。public表示公有的,即可以被类的外部访问的成员。一般用来声明类的接口。这些成员函数或变量可以被类的对象所调用或修改,也可以被其他函数或类直接访问和使用。

例如,下面的代码展示了一个Point类的public成员变量和成员函数:


class Point {

public:

 int x, y;

 void set(int a, int b) x = a; y = b;

 int getX() const return x;

 int getY() const return y;

};

int main() {

 Point p;

 p.set(1, 2);

 cout << "x = " << p.getX() << ", y = " << p.getY() << endl;

 return 0;

}

上面的代码中,Point类的x和y成员变量都是public的,可以直接被main函数访问和修改。set和getX/Y成员函数也是public的,可以被对象p所调用。

相反,private表示私有的,即只能被类内部成员访问的成员。一般用来隐藏类的实现细节。这些成员函数或变量不能被类的对象或其他函数所访问,只能在类的内部进行访问和修改。

例如,下面的代码展示了一个类的私有成员变量和成员函数:


class Rectangle {

private:

 int width, height;

 int area() const { return width * height; }

public:

 void set(int w, int h) width = w; height = h;

 void print() const { cout << "width = " << width << ", height = " << height << ", area = " << area() << endl; }

};

int main() {

 Rectangle r;

 r.set(3, 4);

 r.print();

 return 0;

}

上面的代码中,Rectangle类的width和height成员变量都是private的,不能被main函数直接访问和修改。area成员函数也是private的,只能被类的内部调用。set和print成员函数是public的,在main函数中可以被对象r所调用。

使用public和private关键字可以有效地控制类的访问权限,提高编程的安全性和可维护性。 C++的访问控制机制也是其他面向对象语言的通用机制,对于想要深入学习面向对象编程的人来说,这个知识点是必不可少的。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复