博主主页:倔强的大蜗牛
专栏分类:C++
️感谢大家点赞收藏评论️
目录
class Date {};
特征:
class Date
{
public:
// 1.无参构造函数
Date()
{}
// 2.带参构造函数
Date(int year, int month, int day)
{
_year = year;
_month = month;
_day = day;
}
private:
int _year;
int _month;
int _day;
};
void TestDate()
{
Date d1; // 调用无参构造函数
Date d2(2015, 1, 1); // 调用带参的构造函数
// 注意:如果通过无参构造函数创建对象时,对象后面不用跟括号,否则就成了函数声明
// 以下代码的函数:声明了d3函数,该函数无参,返回一个日期类型的对象
// warning C4930: “Date d3(void)”: 未调用原型函数(是否是有意用变量定义的?)
Date d3();
}
class Date
{
public:
/*
// 如果用户显式定义了构造函数,编译器将不再生成
Date(int year, int month, int day)
{
_year = year;
_month = month;
_day = day;
}
*/
void Print()
{
cout << _year << "-" << _month << "-" << _day << endl;
}
private:
int _year;
int _month;
int _day;
};
int main()
{
// 将Date类中构造函数屏蔽后,代码可以通过编译,因为编译器生成了一个无参的默认构造函
数
// 将Date类中构造函数放开,代码编译失败,因为一旦显式定义任何构造函数,编译器将不再
生成
// 无参构造函数,放开后报错:error C2512: “Date”: 没有合适的默认构造函数可用
Date d1;
return 0;
}
内置类型:int、float、char 等自定义类型:class、struct、union等
class Time
{
public:
Time()
{
cout << "Time()" << endl;
_hour = 0;
_minute = 0;
_second = 0;
}
private:
int _hour;
int _minute;
int _second;
};
class Date
{
private:
// 基本类型(内置类型)
int _year;
int _month;
int _day;
// 自定义类型
Time _t;
};
int main()
{
Date d;
return 0;
}
注意:C++11 中针对内置类型成员不初始化的缺陷,又打了补丁,即:内置类型成员变量在类中声明时可以给默认值。
class Time
{
public:
Time()
{
cout << "Time()" << endl;
_hour = 0;
_minute = 0;
_second = 0;
}
private:
int _hour;
int _minute;
int _second;
};
class Date
{
private:
// 基本类型(内置类型)
int _year = 1970;
int _month = 1;
int _day = 1;
// 自定义类型
Time _t;
};
int main()
{
Date d;
return 0;
}
注意:无参构造函数、全缺省构造函数、我们没写编译器默认生成的构造函数,都可以认为是默认构造函数。
️结语:
本次精彩内容已圆满结束!希望各位读者在阅读过程中能够收获满满。在此,特别感谢各位读者的支持与三连赞。如果文章中存在任何问题或不足之处,欢迎在评论区留言,蜗牛必定会认真对待并加以改进,以便为大家呈现更优质的文章。你们的支持与鼓励,将是博主不断前进的最大动力。再次感谢大家的陪伴与支持!
文章浏览阅读1k次,点赞25次,收藏30次。【JAVA长虹键法】主要讲了23种设计模式,本系列专栏会以虹猫蓝兔七侠传的故事为例来给大家详细分析所有模式,希望能给大家带来帮助!简单工厂模式一个天外陨石(抽象产品),三把剑(产品),一个铸剑师(工厂)。虹猫蓝兔莎莉分别找铸剑师造了三把剑。定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。1、按实际业务场景划分,工厂模式有 3 种不同的实现方式,分别是简单工厂模式、工厂方法模式和抽象工厂模式。
文章浏览阅读1.5k次。(function($) { $.base64 = function(options) { var defaults = { data:"", type:0, unicode:true }; var opts = $.extend(defaults,op..._jquery.base64.js
文章浏览阅读432次,点赞4次,收藏9次。libyuv 是常用的处理YUV数据的库,例如将YUV进行缩放。_libyuv源码
文章浏览阅读2.2k次,点赞4次,收藏5次。vue2 水印效果,使用MutationObserver监听元素结构,支持水印防篡改。_vue 水印插件
文章浏览阅读336次。戳蓝字“CSDN云计算”关注我们哦!我曾在网络上搜索过”如何学习分布式系统“,也在知乎上关注了该话题,但并没有看到一个全面的、有指导意义的答案。本文的目标是给打算全面学习分布式系统的自己..._分布式系统的基本概念和原理
文章浏览阅读1.7k次。从网格XFile文件中导入网格数据,并渲染出来;实际中一般自定义自己的二进制格式文件,实现导出模块,和加载模板,包括了模型和动画。计算网格中的顶点法向量。ID3DXPMesh渐进式网格的创建和使用。用网格顶点创建网格包围体,AABB或球体;实际中很多是在3ds max中创建好包围盒导出,并跟随物体网格一起移动。1.从XFile文件中导入ID3DXMesh网格函数为D3D
文章浏览阅读814次,点赞19次,收藏13次。一、统一解决Android蓝牙通信过程中的兼容性问题二、提供尽可能简单易用的接口,屏蔽蓝牙通信中的技术细节,只开放连接,读写,通知等语义。三、实现串行化任务队列,统一处理蓝牙通信中的失败以及超时,支持可配置的容错处理四、统一管理连接句柄,避免句柄泄露五、方便监控各设备连接状态,比如手机可同时连接的设备数有限,可以检测设备连接活跃度,在尽可能维持连接的情况下,将最不活跃的设备自动断开。六、支持多进程APP架构下蓝牙连接的管理七、支持拦截所有对蓝牙原生接口的调用。
文章浏览阅读7.4k次。文章目录一、下载flutter安装包二、flutter doctor三、配置编辑器一、下载flutter安装包中文文档:https://flutter.cn/docs/get-started/install/windowslink下载安装包解压到指定目录,我解压的目录是D盘下的software把flutter中的bin目录添加至环境变量在左下角搜索env,打开系统环境变量设置(如果修改环境变量之前打开了cmd,就重新打开另一个cmd打开验证)在cmd中验证flutter是否安装完成_安装flutter环境visual studio需要下载什么依赖
文章浏览阅读4.2k次,点赞7次,收藏63次。“本期技术干货,我们邀请到了小米机器人实验室工程师任赜宇,和大家分享如何去设计并控制一台协作机械臂。”一、前言协作机械臂,顾名思义,是适合与人类通力协作去解决实际问题的一类机械臂,作为机械臂家族的一员,与传统的工业机械臂相对应。工业机械臂经过多年的发展,在汽车、3C电子等工业自动化领域已经得到了广泛的落地与应用,而协作机械臂作为近几年来的新兴产物,在智能性、安全性与易用性..._机械臂感知 整体框架
文章浏览阅读72次。分页显示。mysql> pager lessPAGER set to 'less'mysql> show engine innodb status\G[...]退出pagermysql> pagerDefault pager wasn't set, using stdout.ormysql> \nPAGER set to stdout一些其他的用法mysql> pag..._pager has been disabled.
文章浏览阅读212次。HDMI接口包括4个最小化传输差分信号时钟/数据对、DDC和HPD信号,支持高达6Gpbs的数据速率,足以处理FHD 1080p 120Hz和UHD 4k 60Hz视频分辨率。此外,它还包含支持HDCP1.4和HDCP2.3得HDCP引擎,嵌入式密钥提供最高级别的HDCP密钥安全性,确保安全传输受保护的内容。TypeC转HDMI音视频IC,TYPEC转HDMI带PD快充,TYPEC扩展坞方案,TYPEC转HDMI方案,TYPEC转HDMI2.0转换器。每个通道的更大数据速率高达6-Gps。
文章浏览阅读387次,点赞4次,收藏7次。微博大V推广是品牌宣传的重要方式之一,但要找到合适的大V资源并进行推广,需要一定的技巧和方法。CloudKOL作为专业的大V推广平台,为您提供便捷、高效的推广服务,助您实现品牌推广的成功。垂询邮箱:[email protected] 网址:https://www.cloudkol.com。