访问不同类中的成员
access member in different classes
我有两个类,如下:
class A : public C
{
void Init();
};
class B : public C
{
int a = 3;
};
如何访问类A中类B的成员?
class A::Init()
{
class B. a ???
}
也许你想要一个静态成员,不需要B
类型的对象就可以访问它?
class B : public C
{
public:
static const int a = 3;
};
现在你可以从任何地方访问它(包括你的A::Init
函数)作为B::a
。
如果这不是你想要的,那么请澄清问题。
您必须创建class B
的实例并声明变量public
class B : public C
{
public:
int a=3;//Data member initializer is not allowed in Visual Studio 2012, only the newest GCC
};
void A::Init()
{
B b;
b.a= 0;
}
如果您不想创建class B
的实例,请声明变量static
class B : public C
{
public:
static int a = 3;
};
然后像这样访问:
void A::Init()
{
B::a=0;
}
如果你想访问类B的一个"属性"作为全局的,而不是一个特定的对象,那么在这个类中设置变量为static
class B : public C
{
public:
static const int a = 0;
};
并使用B::a
访问它另外:
class A{
public:
void init(){
static int a2 = 0;
a1=a2;
}
int a(){return a1;}
private:
static int a1;
};
int A::a1=0;
您也可以尝试在类中添加静态函数。但我不确定你是否
class B: public C
{
public:
static int GetA(void) {return a;}
private:
static int a;
};
int B::a = 4;
class A: public C
{
public:
void Init()
{
std::cout<<"Val of A "<<B::GetA()<<std::endl;
}
private:
int b;
};
相关文章:
- 从两个不同类继承的非虚拟基类的访问成员
- 如何处理具有不同类的成员函数的函数查找表?
- 访问不同类的私有结构体成员
- 是否可以在容器中存储具有模板成员函数的不同类
- 如何从不同类的静态成员函数访问非静态Qt-Ui函数
- C 在一个集体成员阵列中存储任意数量的不同类
- STD ::绑定同类中的静态成员函数
- 在成员函数中声明指向不同类的指针
- 访问本地对象(相同类类型)的私有成员
- C++来自不同类的多个回调成员函数,而无需 std 和 boost
- 将变量指向来自不同类类型的成员函数
- 不同类的成员列表实现不起作用
- 从C++中不同类的成员函数访问数据
- 指向不同类的成员函数的指针
- 映射不同类的成员函数指针
- 如何合并使用私有成员的不同类的相同方法
- C++:在不同类的派生对象的基指针上调用静态成员函数
- 访问不同类中的成员
- 导出DLL接口中包含相同类的STL类成员
- 存储对具有不同类的对象成员变量的引用