继承相同的变量,但名称不同
Inherit same variable but different name
是否有一种classy c方法(而不是简单地将变量设置为)(双关语)可以从与基类中名称不同的类中继承变量?python中有as
关键字用于别名,c++中有这样的方法吗?
即:
class special_type_of_grid
{
protected: double** special_grid;
public: special_type_of_grid();
}
class integrator: protected special_type_of_grid
{
private: /*grid alias special_grid*/
public: void integrate(){
//...
sum += grid[i][j]*h;
//...}
}
这样就可以有不止一种"特殊类型的网格"。
我想一个好的方法是在构造函数中初始化指针,但它可以在私有/公共范围中完成吗?
C++没有提供任何方法来实现这一点。然而,有可能以某种方式实现,但这是一种非常糟糕的风格。
class Base {
int x;
};
class Derived : public Base {
public:
Derived() : y(x) {
// ctor code here
}
private:
int& y;
};
这个例子表明,你可以用C++做很多奇怪的事情,但如果你认为这是唯一的解决方案,那么你在其他地方的设计就不好了。此外,您应该将: y(x)
添加到所有Derived
因子中。
一个更好(更OOP风格)的解决方案是使用getters/ssetter。
class Derived : public Base {
int& y() { return x; }
};
甚至更好:
class Derived : public Base {
int getY() { return x; }
void setY(int value) { x = value; }
};
然而,这可能会给阅读您的代码的人带来困惑和误解。
相关文章:
- 从类继承时,继承的类是否会通过父类重新定义继承的变量
- 如何从另一个文件继承私有成员变量和公共函数
- 继承时如何构建派生类的变量?
- 在类中继承静态变量?
- 打印所有继承的类成员变量和方法
- 如何在复杂继承中访问静态成员变量
- 如何使用 C++ 中的继承函数访问派生类中的局部变量
- 继承/多态性 - 我是否被迫使用"protected"变量?
- 继承类中的 C++ 成员变量类型重写
- 对象成员变量还是继承
- 继承构造函数和其他变量的解决方法
- std::exception :使用虚函数和继承与变量
- 如何解决多次继承的不明确变量名称?
- 是否可以在不修改父类的情况下将成员变量初始化推迟到继承的类?
- 为什么继承的函数会更改基类中的成员变量,而不是与名为它的对象同名的对象
- 变量(继承自基模板类)的偏移量,由具有相同名称的成员遮蔽
- 静态变量继承C++
- 访问受保护的变量 - 继承和子类的复杂情况
- 私有变量继承
- 如何初始化基类中的唯一变量(继承)