C++ 虚拟成员函数与非虚拟成员函数
示例
具有虚拟成员功能:
#include <iostream>struct X {
virtual void f() { std::cout << "X::f()\n"; }
};
struct Y : X {
// 在此处再次指定虚拟是可选的
// 因为可以从X :: f()推断出来。
virtual void f() { std::cout << "Y::f()\n"; }
};
void call(X& a) {
a.f();
}
int main() {
X x;
Y y;
call(x); // outputs "X::f()"
call(y); // outputs "Y::f()"
}
没有虚拟成员函数:
#include <iostream>struct X {
void f() { std::cout << "X::f()\n"; }
};
struct Y : X {
void f() { std::cout << "Y::f()\n"; }
};
void call(X& a) {
a.f();
}
int main() {
X x;
Y y;
call(x); // outputs "X::f()"
call(y); // outputs "X::f()"
}
以上是 C++ 虚拟成员函数与非虚拟成员函数 的全部内容, 来源链接: utcz.com/z/321335.html