- 类默认的成员访问权限:类默认的成员访问权限是
private
。这意味着在类内部定义的成员变量和成员函数,在类外部不能直接访问。例如:
class MyClass {
int data; // 默认为private,外部无法直接访问
public:
void setData(int value) {
data = value;
}
int getData() {
return data;
}
};
- 结构体默认的成员访问权限:结构体默认的成员访问权限是
public
。这使得在结构体内部定义的成员变量和成员函数,在结构体外部可以直接访问。例如:
struct MyStruct {
int data; // 默认为public,外部可以直接访问
void setData(int value) {
data = value;
}
int getData() {
return data;
}
};
- 改变成员访问权限:
- 使用访问修饰符:在 C++ 中,可以使用
public
、private
和 protected
访问修饰符来改变成员的访问权限。
public
:使用 public
修饰的成员可以在类或结构体的外部直接访问。
private
:使用 private
修饰的成员只能在类的内部访问,结构体中使用较少,因为结构体默认是 public
。
protected
:使用 protected
修饰的成员可以在类的内部以及该类的派生类中访问,但在类外部不能直接访问。例如:
class Example {
private:
int privateData;
protected:
int protectedData;
public:
int publicData;
void setPrivateData(int value) {
privateData = value;
}
int getPrivateData() {
return privateData;
}
};
class Derived : public Example {
public:
void accessProtectedData() {
// 可以访问基类的protected成员
protectedData = 10;
}
};
- 位置决定权限:在类或结构体定义中,访问修饰符对其后面直到下一个访问修饰符或定义结束之间的所有成员起作用。例如,在上面
Example
类定义中,privateData
是 private
权限,protectedData
是 protected
权限,publicData
及之后的成员函数是 public
权限。