我是C++的初学者,我想更改将在此代码中调用的函数版本:
#include <iostream>
class C1 {};
class C2 : public C1 {};
void func(C1 var) {
std::cout << "Func 1" << std::endl;
}
void func(C2 var) {
std::cout << "Func 2" << std::endl;
}
int main() {
C1 *teste1 = new C1;
C1 *teste2 = new C2;
func(*teste1); // Want "Func 1"
func(*teste2); // Want "Func 2"
return 0;
}
Run Code Online (Sandbox Code Playgroud)
正如在注释中可以看到的那样,我想要的是当我取消引用指向C2类的指针时调用带有C2参数的func.
编辑:为了澄清我真正想要实现的目标,以下代码更接近我想要的:
#include <iostream>
#include <list>
class C1 {};
class C2 : public C1 {};
void func(C1 var) {
std::cout …Run Code Online (Sandbox Code Playgroud)