我们如何才能使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基础课程》。