Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 显式传递基型_C++_Inheritance_Casting_Explicit - Fatal编程技术网

C++ 显式传递基型

C++ 显式传递基型,c++,inheritance,casting,explicit,C++,Inheritance,Casting,Explicit,我有一个显式函数,它引用类的基类型。什么是正确的传递方式 我目前正在做一个静态演员阵容: #include <iostream> using namespace std; struct Base { Base() { cout << "Base Constructor" << endl; } Base(Base const& c) { cout << "Base-Base Constructor" << en

我有一个显式函数,它引用类的基类型。什么是正确的传递方式

我目前正在做一个静态演员阵容:

#include <iostream>

using namespace std;

struct Base
{
    Base() { cout << "Base Constructor" << endl; }
    Base(Base const& c) { cout << "Base-Base Constructor" << endl; }
};

struct Derived : public Base
{
    Derived() { cout << "Derived Constructor" << endl; }
    explicit Derived(Base const& c) { cout << "Derived-Base Constructor" << endl; }
    Derived(Derived const& c) { cout << "Derived-Derived Constructor" << endl; }
};

int main()
{
    Base B;
    cout << "\n";
    Derived D;
    cout << "\n";
    Base* test1 = new Derived(D);
    cout << "\n";
    Base* test3 = new Derived(static_cast<Base>(D));
    cout << "\n";
    Base* test2 = new Derived(B);
    cout << "\n";


    return 0;
}
#包括
使用名称空间std;
结构基
{
Base(){cout使用以下命令:

static_cast<Base&>(D)
static\u cast(D)
或者这个:

static_cast<const Base&>(D)
static\u cast(D)
使用以下方法:

static_cast<Base&>(D)
static\u cast(D)
或者这个:

static_cast<const Base&>(D)
static\u cast(D)

static\u cast(D)
static\u cast(D)
@MadScienceDreams lol。我知道它很简单。谢谢你,它工作得很好。
static\u cast(D)
static\u cast(D)
@MadScienceDreams lol。我知道它很简单。谢谢你,它工作得很好。