问题(Question):
各位热心的版友们,小弟是C++新手,对于C++一些细部观念掌握度不那么高。
下列的程式题,判断起来,是在考:
程式在runtion时,呼叫了virtual function与否。
整个题组似乎考得更彻底:
除了用class本身执行内部public的function外,
还用指向class的指标去执行。
由于题组几乎全考到了,因此请教热心的版友们,
这个程式题组的执行,
直接执行function,以及使用指向class的指标去执行,结果是否有异?
谢谢各位热心的版友。
程式码(Code):(请善用置底文网页, 记得排版)
#include <iostream>
class Foo{
public:
void f(){
std::cout << "Foo::f()" << std::endl;
}
virtual void g(){
std::cout << "Foo::g()" << std::endl;
}
};
class Bar: public Foo{
public:
void f(){
std::cout << "Bar::f()" << std::endl;
}
virtual void g(){
std::cout << "Bar::g()" << std::endl;
}
};
int main(){
Foo foo;
Bar bar;
Foo *baz = &bar;
Bar *quux = &bar;
foo.f();
foo.g();
bar.f();
bar.g();
baz->f();
baz->g();
quux->f();
quux->g();
return 0;
}