gpt4 book ai didi

c++ - 一个类只能被另一个类访问

转载 作者:太空狗 更新时间:2023-10-29 23:43:37 25 4
gpt4 key购买 nike

我有一个声明了一些静态变量的类:

#include <iostream>
class A
{
private:
static int x;
public:
static int y;
static getX(){ return A::x;}
static setX(int z){ A::x = z;}
};

int A::x = 0;
int A::y = 0;

现在任何人/任何地方都可以访问 A 类,并且可以操作其成员变量。我怎样才能只允许另一个类访问 A 类静态变量/方法?

class B
{
public:
void showX(){A::setX(9) ; std::cout << A::getX() << std::endl;}
void showY(){A::y = 8; std::cout << A::y << std::endl;}
};

int main()
{
B b1;
b1.showX();
b1.showY();
}

最佳答案

B中的A定义为私有(private)类。

#include <iostream>

class B
{
class A
{
private:
static int x;
public:
static int y;
static int getX() {
return A::x;
}
static void setX(int z) {
A::x = z;
}
};

public:
void showX() {
A::setX(9) ;
std::cout << A::getX() << std::endl;
}
void showY() {
A::y = 8;
std::cout << A::y << std::endl;
}
};

int B::A::x = 0;
int B::A::y = 0;

int main()
{
B b1;
b1.showX();
b1.showY();
}

关于c++ - 一个类只能被另一个类访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45967321/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com