C++: private public protect访问范围
private public protected 三种关键字来指定成员可被访问的范围。
private
:私有成员。一个类的私有成员,不论是成员变量还是成员函数,都只能在该类的成员函数内部才能被访问。
public
:公有成员。一个类的公有成员在任何地方都可以被访问。
protected
:受保护成员。在继承中父类不想让子类访问
如果某个成员前面没有访问范围说明符
- 对 class类来说,该成员
默认为private
私有成员。 - 对 struct结构体来说,该成员
默认为public
公有成员。
成员属性私有化
用private关键字修饰,然后在public中用一对setget函数修改private
的属性。
#include <iostream>
using namespace std;
class Person
{
public:
void setName(string name) {
name = m_Name;
}
string getName()
{
return m_Name;
}
private:
string m_Name;
int m_Age;
int m_Score;
};
int main(){
Person p;
p.setName("Mike");
cout << "name" << p.getName() << endl;
system("pause");
return 0;
}
静态成员
静态成员是在成员变量和成员函数前面加上static关键字
。
🎈🎈
静态成员变量:
所有对象共享同一份数据
在编译阶段分配内存
类内部声明,类外初始化
静态成员函数:
所有对象共享同一个函数
静态成员函数只能访问静态成员变量
#include <iostream>
#include <string>
using namespace std;
class Person {
public:
static void func() {
m_A = 100;
m_B = 200;
cout << "static静态函数调用" << endl;
}
static int m_A;
static int m_B;
private:
static void func1() {
cout << "static静态函数2调用 " << endl;
}
};
void test() {
//通过对象访问
Person p;
p.func();
//通过类名访问
Person::func();
// Person::func1(); 类外访问不到私有静态成员函数
}
int main(){
test();
system("pause");
return 0;
}
posted on 2022-04-16 09:47 Michael_chemic 阅读(108) 评论(0) 编辑 收藏 举报