簡體   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