![]() |
1
6
答案是没有。 |
![]() |
2
4
我认为答案是A。
您可以重写实现(如果操作被声明为
考虑以下几点:
现在看看结果:
|
![]() |
3
1
a-父操作可以重写(在某种意义上被替换),但不能更改。
B::foo()重写了A::foo(),但没有更改它。 是的,子类可以使用父类中方法的实现。例如,如果我们将上面代码中的B::foo()方法更改为。。。
…程序将打印。。。
c-子类可以使用 受保护的 父类的属性,但不是 私有的 属性。例如:
由于子类B试图访问父类的私有成员,因此该代码在上面提到的行中将有一个编译错误。如果另一个类被声明为 朋友 但是你应该很少,如果有的话,使用friend关键字。 是的,子类可以有父类没有的操作。例如:
在上面的例子中, 其他函数() 最好的学习和确定的方法是在编译器中尝试这些东西。尝试上面的代码。我在visualstudio2008中测试了它。没有显式标记为COMPILE ERROR的示例应该可以工作。 |
![]() |
4
0
我想我知道贾斯汀是怎么说A项的,但在他的例子中,继承是一条红鲱鱼,我认为他在寻找一个不存在的窍门。 创建具有重写行为的子级不会影响父级 如果不使用孩子 ,但这似乎不言而喻。如果您将父级的parent1实例改为使用子级的构造函数,我想您会看到A点将得到确认。 |
![]() |
5
0
这是不允许的。您可以重写虚拟函数,这样子类对象在通过指向基类的指针或引用进行访问时,可以运行它们自己的函数实现,但不能阻止基类实例运行其正常实现。 (从技术上讲,如果基类定义了成员函数模板,您可以定义一个新的专门化,它将从定义的角度影响到翻译单元的结束,但这是一个令人讨厌的黑客行为,而不是真正意义上的模板)。 这只允许用于公共/受保护的成员,而不允许用于私有成员。
这是明确允许的,也是不可能限制的。
|
![]() |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
![]() |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
![]() |
rainer · 后台插入程序的初始化 1 年前 |
![]() |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
|
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
|
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |