C++外部函数如何用私有成员
时间: 2023-07-30 19:07:20 浏览: 55
在C++中,私有成员只能在类的内部访问。如果要在外部函数中访问私有成员,可以使用类的公有成员函数来访问。可以在类中定义一个公有成员函数,该函数可以访问类的私有成员,并将私有成员作为参数传递给外部函数。
举个例子,假设有一个类MyClass,其中有一个私有成员变量privateVar和一个公有成员函数getPrivateVar,可以这样实现:
```cpp
class MyClass {
private:
int privateVar;
public:
int getPrivateVar() {
return privateVar;
}
};
int externalFunction(MyClass obj) {
int privateVar = obj.getPrivateVar();
// 使用私有成员变量privateVar
return privateVar;
}
```
在外部函数externalFunction中,通过调用MyClass的公有成员函数getPrivateVar获取私有成员变量privateVar,并将其作为参数传递给外部函数。然后在外部函数中就可以访问私有成员变量privateVar了。
相关问题
C++中公有和私有静态成员函数的区别
在C++中,静态成员函数是属于整个类的,而不是属于某个对象的。公有静态成员函数和私有静态成员函数的区别在于:
1. 访问权限:公有静态成员函数可以被类的任何成员函数和外部函数访问,而私有静态成员函数只能被类的成员函数访问,外部函数无法访问。
2. 对象访问:公有静态成员函数可以通过类名和对象来调用,而私有静态成员函数只能被类的成员函数访问,无法通过类名或对象来调用。
3. 继承:公有静态成员函数可以被子类继承并访问,而私有静态成员函数不能被子类继承。
需要注意的是,静态成员函数不能访问非静态成员函数和非静态成员变量,因为非静态成员是和对象相关联的,而静态成员函数是不属于任何对象的。
c++怎样调用类中私有的成员函数
在C++中,私有成员函数只能在类的内部访问,不能在类的外部直接访问。但是可以通过类的公有成员函数来间接调用私有成员函数。例如:
```cpp
class MyClass {
private:
void privateFunc() {
// 这是一个私有成员函数
}
public:
void publicFunc() {
// 这是一个公有成员函数
privateFunc(); // 在公有成员函数中调用私有成员函数
}
};
```
在上述代码中,privateFunc() 是一个私有成员函数,只能在 MyClass 类内部访问。但是,在公有成员函数 publicFunc() 中,可以调用 privateFunc(),因为 publicFunc() 是公有成员函数,可以在类的外部访问。因此,通过公有成员函数来封装私有成员函数,实现对私有成员函数的间接调用。