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。我知道它很简单。谢谢你,它工作得很好。