是否可以从继承的类对象访问基类的构造函数
Is it possible to access the constructor of the base class from the inherited class object?
所以我想知道是否实际上可以从继承的类对象访问基类的构造函数?比如:
#include <iostream>
class Foo
{
public:
Foo(int i)
{
id = i;
}
protected:
int id;
};
class Bar: public Foo
{
public:
void barFunc()
{
if (id>0)
{
std::cout << "Bar stuff" << std::endl;
}
else
{
std::cout << "Other Bar stuff" << std::endl;
}
}
};
int main()
{
Foo fooObj(7);
Bar b; //is it possible to access 'id' in Bar whilst initializing 'id' in Foo?
b.barFunc();
}
如果我只是运行barFunc()对象b将表现得好像'id'没有初始化。
有一个任务要做,我不确定如何使用他们给我的代码。谢谢!:)
首先创建与基类匹配的构造函数:
Bar(int i) : Foo(i) { }
然后Bar b(1);
b.barFunc();
和不需要
Foo fooObj(7)
因为id
是protected
,所以可以在Bar
中访问它
相关文章:
- 按基类对象访问派生类资源时出错
- 使用基类对象访问派生的仅类方法
- 从 const 对象访问非 const 方法
- 如何在C++中使用类对象访问指针数据成员
- 如何通过不同的指针使用类的对象访问结构?(链表)(C++)
- 使用二进制搜索树中的迭代器对象访问左侧节点
- 为什么引用类型在使用临时对象访问时是左值
- 从父对象 c++ 访问子方法
- 无法通过指针或对象 c++ 访问受保护的成员
- 为什么可以从类中的对象访问类的私有变量
- 对类似"struct {double, int}"对象使用reinterpret_cast进行对象访问
- 通过无符号 char 别名进行对象访问,加载和存储时会发生什么?
- 从对象访问结构枚举
- 如何全局创建对象并使用该对象访问全局范围内的公共成员函数
- 在C 中,可以从第三个共享对象访问其他两个不同共享对象
- 如何在C 中提供一个可呼叫的对象访问,例如lambda
- C 向量对象访问
- C++是否可以从同级第二个派生对象访问第一个派生对象的受保护基础数据成员?
- 如何从类内实例化的对象访问私有变量
- 多态性:通过类文本或对象访问静态成员