gpt4 book ai didi

c++ - 从源文件中定义的类访问 header 中定义的类的私有(private)变量

转载 作者:行者123 更新时间:2023-11-28 04:42:47 25 4
gpt4 key购买 nike

Header.h

#pragma once

namespace
{
class B;
}

namespace n1
{
namespace n2
{
class A
{
private:
int i;

public:
friend class B;
};
}
}

Source.cpp

#include <stdio.h>
#include "Header.h"

class B
{
public:
void Run();
};

void B::Run()
{
n1::n2::A a;
a.i;
}

int main()
{
B b;
b.Run();
}

从上面我们可以看出,A类是在头文件中定义的,而B类是在源文件中定义的。我想从 B 类::run() 访问 A 类的私有(private)成员。我无法找到执行此操作的方法。

最佳答案

您正在匿名命名空间中转发声明类 B

从命名空间中取出 B 类前向声明​​,它应该可以工作

像这样:

#pragma once

class B;


namespace n1
{
namespace n2
{
class A
{
private:
int i;

public:
friend class B;
};
}
}

关于c++ - 从源文件中定义的类访问 header 中定义的类的私有(private)变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49874315/

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