繁体   English   中英

需要帮助了解 output

[英]Need help understanding the output

我有以下代码

#include <iostream>
using namespace std;

class Base {
    private:
        Base() {
            cout<<"Base ctor has been called "<<endl;
        };
    public:
        int a;
};

class Derived: public Base {

};

int main() {
    Base* b1;
    Derived d1();
    cout<<d1;
    return 0;
}

我不确定在上面的示例中如何创建派生的 class object d1。 代码编译并运行没有任何错误。 创建Derived d1(); 为什么 output 的cout<<d1; 是1吗? Derived 的实例是否具有基数 class 的int a 感谢您的帮助!

在你的main function 中, Derived d1(); 实际上是一个名为d1的 function 的声明,它不接受 arguments 并返回一个Derived 至于为什么打印1std::ostream没有Derived (*)()d1被隐式转换为)的重载,因此它将它转换为唯一合适的类型,即bool 尝试更换cout<<d1; cout << boolalpha << d1; 你会看到程序打印true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM