C++ 使用派生类方法更改基类数据成员
C++ Use derived class method to change base class data member
我很难弄清楚如何使用派生类方法访问和更改基类数据成员。 以下代码是我想执行的操作的示例。
class A
{
protected:
string name;
public:
A():name("Name 1"){}
void DisplayA()
{
cout<<name<<endl;
}
};
class B : public A
{
public:
void Change()
{
cout<<"Enter New Name: ";
getline(cin,name);
}
void DisplayB()
{
cout<<name<<endl;
}
};
main()
{
A Obj1;
B Obj2;
Obj1.DisplayA();
Obj2.Change(); // I want this method to change the name in Base class too.
Obj2.DisplayB();
Obj1.DisplayA(); // This method should now display the new name that we set in Change();
}
必须将 name 定义为static std::string
,因为修改对象的非静态成员只会更改该对象的非静态成员。
相关文章:
- 如何基于模板化类的基类专门化成员函数
- 为什么基类数据在派生类数据之前初始化
- 重写函数不打印基类数据
- 继承:调用基类的成员和方法
- 将基类的成员函数重载到其他派生类C++
- C++ 使用派生类方法更改基类数据成员
- 不可复制类数据成员的统一初始化导致gcc错误
- 派生类不能用另一个基类的成员重载基类中的私有成员
- 是否可以访问类数据成员并在析构函数中对它们执行操作?
- 基类私有成员属于派生类的哪个部分?
- 在不编写显式 setter 的情况下修改私有类数据成员的便捷方法是什么?模板有用吗?
- 不能从派生类中获取基类的成员. C++
- 基类数据成员类型取决于派生类
- 使用来自基类方法的派生类数据成员
- C++-填充派生类数据成员,同时设置基类属性值
- 仅授予派生类对基类数据成员/函数的 const 访问权限
- 具有继承的桥接设计模式,其中抽象基类具有成员数据
- 在派生类成员初始化列表中初始化基类数据成员时出现c++错误
- 从派生类对象调用基类函数.派生类构造函数中设置的基类数据成员
- 我如何通过基类指针获得派生类数据成员(向上转换)