C++的基类如何访问其派生类的成员变量?
例如定义了一个类A,内部有静态变量x(假设初始化后值为1),函数foo需要访问变量x类B继承于类A,所以类B继承了静态变量x(假设初始化后值为2)现在的问题是,当B调用函...
例如定义了一个类A,内部有静态变量x(假设初始化后值为1),函数foo需要访问变量x
类B继承于类A,所以类B继承了静态变量x(假设初始化后值为2)
现在的问题是,当B调用函数foo时,foo函数访问的变量x的值是1,而不是想要的2
问怎样做才能让基类A中的foo函数访问派生类B中的x? 展开
类B继承于类A,所以类B继承了静态变量x(假设初始化后值为2)
现在的问题是,当B调用函数foo时,foo函数访问的变量x的值是1,而不是想要的2
问怎样做才能让基类A中的foo函数访问派生类B中的x? 展开
展开全部
class Base
{
public:
static string ba;
};
string Base::ba="fool";
class Derived : public Base
{
};
void main()
{
cout<<Base::ba<<endl;
cout<<Derived::ba<<endl;
Derived de;
de.ba="new life";
cout<<Base::ba<<endl;
cout<<Derived::ba<<endl;
}
自己编译下就清楚了
{
public:
static string ba;
};
string Base::ba="fool";
class Derived : public Base
{
};
void main()
{
cout<<Base::ba<<endl;
cout<<Derived::ba<<endl;
Derived de;
de.ba="new life";
cout<<Base::ba<<endl;
cout<<Derived::ba<<endl;
}
自己编译下就清楚了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在C++中静态变量在内存中只创建一个由所有的基类和派生类共享这个变量。所以你应该看看是否初始化有没有问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
静态变量只有一个怎么能两次初始化
追问
基类定义了一个静态成员变量,并将其初始化为1
然后的初始化是在派生类中进行的。
编译运行是可以通过的,下断点查看this指针也可以看得出来,派生类B中有静态成员变量x,值为2,基类也有一个静态成员变量对象x,值为1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询