因此,与其说是针对特定项目的问题,不如说是对未来的理解。 我不明白子类构造函数的含义和包含的内容。 我知道如果需要,父类将初始化它们的属性和其他类的对象,但是当涉及到子类时,您是否通过super()函数初始化要使用的父类属性以及它们自己的属性? 例如: (不运行代码...(我不认为,我是 ...
因此,与其说是针对特定项目的问题,不如说是对未来的理解。 我不明白子类构造函数的含义和包含的内容。 我知道如果需要,父类将初始化它们的属性和其他类的对象,但是当涉及到子类时,您是否通过super()函数初始化要使用的父类属性以及它们自己的属性? 例如: (不运行代码...(我不认为,我是 ...
考虑: GCC 接受(从 7.1 开始;以前全部拒绝)。 Clang 接受b和xyz但拒绝a和c 。 MSVC 在 C++14 模式下拒绝所有,但在 C++17 模式下接受所有。 哪些编译器是正确的? C++14 和 C++17 之间的规则是否发生了变化 - 如果是这样,为什么在 C++14 ...
我很抱歉,如果这是一个愚蠢的问题,或者甚至不属于我要问的问题,但是我对WPF还是陌生的,我似乎无法掌握。 现在,我正在做类似于https://www.c-sharpcorner.com/article/use-inotifypropertychanged-interface-in-wpf-mv ...
每当在任何派生类中调用任何构造函数时,任务只能通过最终隐式或显式地调用基类构造函数来完成(如果我在这里错了,请纠正我)。 因为我们打算创建派生类的实例,但是因为最后调用了基类构造函数。 那么,尽管调用了基类的构造函数,但是如何构造派生类的实例? ...
我想继承一个模板类,并使用“ using”来继承其构造函数。 但是当我调用move构造函数时,失败“没有匹配的构造函数” 构建结果 ...
这个故事与我之前的问题类似。 支持C ++ 11的所有GCC版本都具有这种确切的行为。 我找不到任何其他编译器与我的测试用例斗争。 测试用例: 住在godbolt.com上 这段代码用clang (3.4到4.0), icc (16,17), Visual C ++ ...
在这个例子中: T::X是一个从属名称,它引用T的成员X 如果用T = X实例化S<T> : using声明是否会成为继承构造函数? Clang拒绝代码DEMO ,而g ++接受它。 请注意,如果我们写: 两个编译器都接受代码并将其视为继承构造函 ...
我对CS类的分配是创建两个继承自std :: logic_error的自定义异常类:OverflowingSwimmingPoolException和UnderflowingSwimmingPoolException。 尝试进行非法操作时,请创建并引发自定义异常,而不仅仅是打印错误消息。 在 ...
我不确定它是否是GCC编译器的错误或noexcept的预期行为。 请考虑以下示例: 如果删除noexcept ,则编译。 无论如何,正如在例子中,我从GCC v5.3.1得到了这个错误: 据我所知, struct D不是一个不完整的类型,但继承构造函数涉及到语句,看起来编 ...
在这里我发现: 默认情况下,继承构造函数都是noexcept(true),除非它们需要调用noexcept(false)函数,在这种情况下这些函数是noexcept(false)。 这是否意味着在下面的示例中,继承的构造函数是noexcept(true) ,即使它已在基类中显式 ...
考虑以下代码: 凭直觉,很明显,这段代码是有效的,并且确实可以编译(用gcc和clang测试)。 但是,我想了解标准中的哪些内容使其有效。 具体而言,我想了解名称查找如何base在base foo()发现的基类,而不是继承的构造。 这是我对标准措辞的分析,表明应将其解析为构 ...
无论typedef是什么,我都有以下类,这样写,完全可以工作: 除了重载的typedef之外,我想创建一个实际上几乎相同的子类: 我想要实现的是创建一个B类,即: - 与A相同 - 具有所有As函数(A中有很少的成员函数,我没有写过) - 所有的As运算符 - 全部作为构造函数 ...
从我对SO和cppreference链接的答案的阅读中 继承的构造函数等效于用户定义的构造函数,该主体具有空主体,并且成员初始化程序列表由单个nested-name-specifier组成 ,后者将其所有参数转发给基类构造函数。 我得出的结论是,以下D类和E类应表现相同。 ...
C ++ 11允许继承构造函数,从而可以避免大量的样板,尤其是类似于包装类的东西。 但是,似乎您已经可以使用可变参数模板实现此功能。 使用继承构造函数: 使用可变参数模板并转发: 虽然一致性(对待构造函数和方法的相同方式using )和易用性很好的理由把继承构造成的语言 ...
以下代码片段在Clang 3.4 / 3.5(Xcode 5/6)下构建完全正常,但在Visual C ++ 14 CTP3下抛出错误: 1> ------ Build build:Project:InheritingConstructor,Configuration: De ...
在阅读这个问题时 ,我发现了一个奇怪的观点: 由于typename , Baseclass<T>::Baseclass应该注入类名 ,而不是构造函数。 据我所知,情况与此相同: 为了确保,我写了一个测试代码。 但是,它运行在gcc 4.8.3上。 它 ...
我在我的项目中遇到以下错误: 这是我正在使用的代码: 有谁知道为什么会这样? 很明显,语言愿意在继承的构造函数的末尾添加更多的初始化(因为它愿意调用默认的构造函数)。 显然,它愿意隐式地将对非默认构造函数(类初始化)的调用添加到显式定义的构造函数的末尾。 但由于某种原 ...
我试图创建一个派生自boost::multiprecision::mpz_int的类,并让它继承基类构造函数: #include <boost/multiprecision/gmp.hpp> using namespace boost::multiprecision; stru ...
假设以下布局: 我可以在这里将Derived的构造函数指定为 public 吗? VC++ 给出以下错误: 无法访问类“派生”中声明的受保护成员编译器在此处生成了 'Derived::Derived' [指向 using Base::Base 行] 见“派生”的声明 即它忽略了继承构造 ...
我即将创建一个异常类层次结构,概念上看起来像这样: 所有构造函数应该与ExceptionBase类的构造函数相同。 派生的异常仅在类型上有所不同,否则没有添加的功能。 上面代码中提到的最后一个异常类型也应该有这些构造函数。 这是否可以使用C ++ 11标准的继承构造函数功能? 如 ...