关于C++虚函数的一点点~~

时间:2024-10-14 12:36:20

  Talk is cheap, show you the code:

1.(普通的)

 #include<cstdio>

 class B {
public:
void func() const {
puts("B!");
}
}; class C : public B {
public:
void func() const {
puts("C!");
}
}; void hehe(const B &b) {
b.func();
} int main() {
C c;
hehe(c);
return ;
}

  运行结果:

关于C++虚函数的一点点~~  (应该是发生了向上转型什么的吧)

2. 基类的函数变为虚函数:

 #include<cstdio>

 class B {
public:
virtual void func() const {
puts("B!");
}
}; class C : public B {
public:
void func() const {
puts("C!");
}
}; void hehe(const B &b) {
b.func();
} int main() {
C c;
hehe(c);
return ;
}

  运行结果:

关于C++虚函数的一点点~~

  底层的原理暂时还不懂,有空再补充。