問題(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;
}