构造函数必须是public吗_c++ 构造函数,析构函数必须要给成公有的吗?
这是一道面试题,记得当时回答的并不好,因为我们对构造函数经常使用,例如单例模式下构造函数我们会声明为私有的,其他情况下构造函数我们都会声明为公有的,但是析构函数是否必须声明为公有的,还真没注意。下面我们就一起学习下。
(一)一个类的析构函数只能有一个,也不能重载
1.类的析构函数,是在对象的生命周期结束后,由系统自动调用的。
2.该函数不需任何参数,不需要传入任何参数,如果非要写一个带参数的析构函数,则会造成编译器的抱怨,造成二义性,这一点和够赞函数不同,构造函数可以根据传入的参数,选择合适的构造函数。构造函数可以显示调用,而析构函数系统负责调用,程序无法控制其调用时机。
(二)构造函数,析构函数必须是公有的吗?
1.析构函数必须给成公有的,因为对象生命周期结束后,系统会调用,如果不是公有的则会引发错误
2.构造函数可以是公有的,私有的,保护的
#include class Test{private:double num;Test(double d){num = d;}//~Test(){} 系统报错public:Test(int n){num = n;}~Test(){}};void Test:: InnerCreate(){ Test inner(3.14);//调用私有的构造函数}int main(){ Test obj(0);//调用公有的构造函数 obj.InnerCreate(); return 0;}
构造函数必须是public吗_c++ 构造函数,析构函数必须要给成公有的吗?相关推荐
- c构造函数和析构函数_C ++构造函数和析构函数| 查找输出程序| 套装1
c构造函数和析构函数 Program 1: 程序1: #include <iostream> using namespace std; class Sample { private: in ...
- c构造函数和析构函数_C ++构造函数,析构函数能力问题和答案(第2组)
c构造函数和析构函数 C ++构造函数和析构函数能力问题列表 (List of C++ Constructor and Destructor Aptitude Questions & Answ ...
- 构造函数不可以是虚函数;析构函数可以是虚函数,也可以是纯虚函数。
构造函数不可以是虚函数:析构函数可以是虚函数,也可以是纯虚函数. 一:构造函数不能声明为虚函数的原因 1 构造一个对象的时候,必须知道对象的实际类型,而虚函数行为是在运行期间确定实际类型的. 而在构造 ...
- C++继承中构造函数、析构函数调用顺序及虚析构函数
首先说说构造函数,大家都知道构造函数里就可以调用成员变量,而继承中子类是把基类的成员变成自己的成员,那么也就是说子类在构造函数里就可以调用基类的成员了,这就说明创建子类的时候必须先调用基类的构造函数, ...
- 为什么构造函数不能声明为虚函数,析构函数可以,构造函数中为什么不能调用虚函数?
为什么构造函数不能声明为虚函数,析构函数可以,构造函数中为什么不能调用虚函数 构造函数中为什么不能调用虚函数? 第一个理由是概念上的 第二个理由是机械上的. 构造函数不能声明为虚函数的原因是 1 构造 ...
- 不存在从node到node*的适当转换函数_C++构造函数和初始化表
构造函数和初始化表 1 构造函数 当类对象被创建时,编译系统对象分配内存空间,并自动调用该构造函数,由构造函数完成成员的初始化工作,因此构造函数的作用是初始化对象的数据成员. 2 构造函数可以重载 构 ...
- c++ loadlibrary 初始化对象_C++构造函数和初始化表
构造函数和初始化表 1 构造函数 当类对象被创建时,编译系统对象分配内存空间,并自动调用该构造函数,由构造函数完成成员的初始化工作,因此构造函数的作用是初始化对象的数据成员. 2 构造函数可以重载 构 ...
- c++的构造函数极其调用(无参构造函数,有参构造函数,拷贝构造函数)
1.c++编译器会自动调用构造函数 //构造函数(与类名相同) //析构函数:没有参数也没有任何返回类型,被自动调用 #include<iostream> using namespace ...
- php构造函数里抛出异常_php-在类的构造函数中返回值
php-在类的构造函数中返回值 到目前为止,我有一个带有构造函数的29447791671682017201728类 public function __construct ($identifier = ...
最新文章
- 更换ip软件安卓_2019十大手机读书软件排行榜
- 听说你,对薪酬待遇不太满意。。。
- 小电商的延时队列设计概要
- Redis学习(一)——
- c++ createtoolhelp32snapshot取进程路径_理解进程和线程
- 数据结构学习笔记(树、二叉树)
- C语言学习之 数组,指针,字符串. (一)
- python之list与set的区别
- 数字反转(NOIP2011 普及组第一题)
- 数据库程序设计复习资料
- Android网络课程笔记-----完善GoogleStyleApp框架结构
- 计算机毕业论文选题管理系统的设计与实现
- 兀键和6键怎么判断_高中有机化学大兀键怎么判断电子数和参与成键的原子数?...
- 手机通过IPV6访问电脑共享文件
- 等额本息还款和等额本金还款计算公式的推导
- 天创速盈:拼多多低价引流怎么玩?大部分中小卖家都不知道
- ITSM | 权威指南发布,高速IT服务管理团队是什么样子的?
- 如何运营一家数据标注公司 (基础架构篇)
- C语言过时了?扯淡!
- 初等行变换、初等列变换