//// 2.19.constructor.cpp// chapter 2 language usability// modern c++ tutorial//// created by changkun at changkun.de// https://github.com/changkun/modern-cpp-tutorial//#include <iostream>#include <string>class Base {public:std::string str;int value;Base() = delete;Base(std::string s) {str = s;}// delegate constructorBase(std::string s, int v) : Base(s) {value = v;}// final constructorvirtual void foo() final {return;}virtual void foo(int v) {value = v;}};class Subclass final : public Base {public:double floating;Subclass() = delete;// inherit constructorSubclass(double f, int v, std::string s) : Base(s, v) {floating = f;}// explifict constructorvirtual void foo(int v) override {std::cout << v << std::endl;value = v;}}; // legal final// class Subclass2 : Subclass {// }; // illegal, Subclass has final// class Subclass3 : Base {// void foo(); // illegal, foo has final// }int main() {// Subclass oops; // illegal, default constructor has deletedSubclass s(1.2, 3, "abc");s.foo(1);std::cout << s.floating << std::endl;std::cout << s.value << std::endl;std::cout << s.str << std::endl;}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。