繁体   English   中英

C ++:为拥有类成员的类创建默认构造函数(该成员缺少默认构造函数)

[英]C++:creating default constructor for a class that owns a class member(the member lacks default constructor)

该问题基于c ++入门第五版7.43。

    #include<iostream>
    using namespace std;
    class C;
    class NoDefault{
    friend class C;
    public:
        NoDefault(int a) :item(a) {}   //lack default constructor
    private:
        int item;
    };
    class C{
    public:
        C() :item(1){}  //default constructor
        void print();
    private:
        NoDefault item;
    };
    void C::print()
    {
        cout<<item.item;
    }
    int main()
    {
        C obj1;
        obj1.print();
        return 0;
    }

该程序的执行不显示任何输出,而直接结束。 我认为输出应为1,因为以下初始化过程:

    C() :item(1){}  //default constructor
    NoDefault(int a) :item(a) {} 

请指出我的错误,非常感谢!

感谢回答我的问题的人的帮助! 我发布的代码是正确的,问题出在我的编译器上。

暂无
暂无

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

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