如何从类中定义的结构访问私有成员?c++
How access to private members from a struct defined within a class? c++
我在类中定义了一个结构,如下所示:
class my_header {
public:
my_header();
struct add_x {
double operator()() const { return a; }
} add_x;
private:
double a{1.0};
};
在编译(g++-std=c++11(时,我得到了以下错误:
./my_header.h:19:40: error: use of non-static data member 'a' of
'my_header' from nested type 'add_x'
double operator()() const { return a; }
是否可以从类本身中定义的结构访问类的私有成员?
问题是add_x
嵌套类型的add_x
实例不知道用于访问字段my_header::a
的my_header
的正确实例。这就是为什么它抱怨a
是非静态的(如果它是静态的,它就会知道你想要什么a
(。
另一种选择是让add_x
在其构造函数中引用my_header
,并使用该实例访问a
。
相关文章:
- C++ 传递指向对象的指针的指针,无法访问成员
- 从不同C++类的成员变量访问成员函数
- 使用 getter 访问成员变量C++
- 如何使用包含内部类的类实例有效地从内部类访问成员?
- 通过多个类访问成员时出错
- 如何在使用对象指针时访问成员函数
- 为什么相应成员不能正确访问成员函数指针
- 从两个不同类继承的非虚拟基类的访问成员
- 如何使用 gcc 内联汇编器代码访问成员变量
- 如何使用常数向量访问成员函数
- 访问成员函数中参数的类成员
- C++嵌套结构初始化和访问成员
- 通过指向班级第一个成员的指针访问成员是不确定的行为吗?
- 如何使用C STD :: SET中的迭代器访问成员功能
- 访问成员C 时,结构的向量生成了范围的错误
- 带指针的班级访问成员
- 从聚合类访问成员变量
- 如何访问成员变量 sqlite 回调
- ctypes/C++segfault访问成员变量
- 通过父类型的指针或直接从派生类访问成员函数的差异