小编Kir*_*C K的帖子

将构造函数声明为私有显示错误.至少有一个公共构造函数是强制性的吗?

我是C++的学习者.我编写了以下程序.我正在研究构造函数和析构函数的概念.我在下面有这个代码,我声明了一个私有析构函数,并使用main()中类的成员函数访问私有成员.我知道私有构造函数可以声明但是公共构造函数也是强制性的吗?这是我的代码如下:

class Book
{
private:
    int *pages;
    int *price;


    Book()        //default constructor
    {
        pages = new int;
        price = new int;
        *pages = 300;
        *price = 8;
    }

public:
    void pre_destructor()
    {
        std::cout << "The pages:" << *pages << "\n";
        std::cout << "The price:" << *price << "\n";
    }

~Book() //destructor
    {
        std::cout << "The pages:" << *pages << "\n";
        std::cout << "The price:" << *price << "\n";
        delete pages;
        delete price;
    }

};

int main()
{
    using namespace std; …
Run Code Online (Sandbox Code Playgroud)

c++ constructor destructor dynamic-memory-allocation c++11

3
推荐指数
1
解决办法
167
查看次数