小编Gus*_*o99的帖子

如何选择调用的重载函数

我是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)

c++ inheritance overloading

8
推荐指数
1
解决办法
144
查看次数

标签 统计

c++ ×1

inheritance ×1

overloading ×1