📜  C ++ |其他C ++ |问题5

📅  最后修改于: 2021-06-29 00:00:34             🧑  作者: Mango

我们如何才能使C++类只能使用new运算符创建它的对象?

如果用户尝试直接创建对象,则程序将产生编译器错误。
(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/。
这个问题的测验

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。