#include "tmp.h"
#include <iostream>
using namespace std;
struct P1
{
P1() { cout << "p1" << endl; };
//error
//P1(int m) = default;
P1(int m) { cout << "p1:" << m << endl; };
};
struct P2
{
P2() { cout << "P2" << endl; };
//error
//P1(int m) = default;
P2(int m) { cout << "P2:" << m << endl; };
};
struct D:P1,P2
{
//error
using P1::P1;
using P2::P2;
//使用p1所有的构造函数
D(int m):P2(m),P1(m)
{}
};
int main2()
{
D d(23);
return 0;
}
c++17 using继承所有构造函数
最新推荐文章于 2025-05-20 16:33:48 发布
本文探讨了C++中构造函数的使用和继承时遇到的错误,展示了如何通过默认构造函数和参数化构造函数初始化派生类对象。在示例代码中,`D`类从`P1`和`P2`派生,并通过`P1::P1`和`P2::P2`调用基类构造函数。在`main2`函数中,创建了一个`D`类的实例,强调了构造函数在类继承中的作用。
1万+

被折叠的 条评论
为什么被折叠?



