C++ MISC C++问题5

我们如何制作C++类,使得它的对象只能使用new运算符来创建?

null

如果用户试图直接创建一个对象,程序会产生编译器错误。 (A) 不可能 (B) 通过将析构函数私有化 (C) 通过将构造函数私有化 (D) 通过使构造函数和析构函数都私有 答复: (B) 说明: 请参见下面的示例。

// Objects of test can only be created using new
class Test
{
private:
    ~Test() {}
friend void destructTest(Test* );
};
 
// Only this function can destruct objects of Test
void destructTest(Test* ptr)
{
    delete ptr;
}
 
int main()
{
    // create an object
    Test *ptr = new Test;
 
    // destruct the object
    destructTest (ptr);
 
    return 0;
}

看见 https://www.geeksforgeeks.org/private-destructor/ 更多细节。 这个问题的小测验

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享