智能家居引热议 那些智能家电APP你知道吗?

构造函数再探

构造函数初始值列表

 Sales_data::Sales_data(const string &s, unsigned cnt, double price)
    {
        bookNo=s;
        units_sold=cnt;
        revenue=cnt*price;
    }

这个构造函数和这个效果是一样的

    Sales_data(const std::string &s, unsigned n, double p):
        bookNo(s),units_sold(n),revenue(p*n){}

构造函数的初始值有时必不可少

当成员是const类型或者是引用的时候就必须将其初始化,或者是类类型的时候,且该类没有构造函数定义的时候,那么也要将其初始化

class ConstRef
{
public:
    ConstRef(int ii);
private:
    int i;
    const int ci;
    int &ri;
};

//错误的构造函数的初始化
ConstRef::ConstRef(int ii)
{
    //赋值
    i=ii;       //正确
    ci=ii;      //错误:不能给const赋值
    ri=i;       //错误:ri没被初始化
}
//正确的打开方式
ConstRef::ConstRef(int ii):i(ii),ci(ii),ri(i)
{

}

建议:使用构造函数初始值(就是上面的正确打开方式)

在很多类中,初始化和赋值的区别事关底层效率问题,前者(就是上面的正确打开方式)直接初始化,后者(赋值错误打开方式)先初始化后赋值。

成员初始化的顺序

成员初始化的顺序和他们在类定义中的出现顺序一致。

class X
{
    int i;  //先被初始化
    int j;  //后被初始化
public:
    X(int val):j(val),i(j){}
};

<span style="font-weight: normal;">class Sales_data
{
    //为Sales_data的非成员函数所做的友元声明
    friend Sales_data add(const Sales_data&, const Sales_data&);
    friend std::istream &read(std::istream&, Sales_data&);
    friend std::ostream &print(std::ostream&, const Sales_data&);

public:         //增加了访问说明符
    //构造函数
    Sales_data() = default;
    Sales_data(const std::string &s, unsigned n, double p):
        bookNo(s),units_sold(n),revenue(p*n){}
    Sales_data(const std::string s="11"):bookNo(s){cout<<"xxxx"<<endl;}
    Sales_data(std::istream &is){read(is, *this);}
    /*
    Sales_data::Sales_data(const string &s, unsigned cnt, double price)
    {
        bookNo=s;
        units_sold=cnt;
        revenue=cnt*price;
    }*/

    //普通成员函数
    std::string isbn()const {return bookNo;}
    Sales_data &combine(const Sales_data&);
private:
    double avg_price() const
    {
        return units_sold ? revenue/units_sold : 0;
    }
    std::string bookNo;
    unsigned units_sold=0;
    double revenue=0.0;
};

//Sales_data接口的非成员组成部分的声明
Sales_data add(const Sales_data&, const Sales_data&);
std::istream &read(std::istream&, Sales_data&);
std::ostream &print(std::ostream&, const Sales_data&);

int main()
{
    Sales_data next();
    Sales_data last("9-999-99999-9");

    return 0;
}</span>

这里面,main函数里面一个调用的defalut一个调用的是

<span style="font-weight: normal; ">Sales_data(const std::string s="11"):bookNo(s){cout<<"xxxx"<<endl;}</span>

委托构造函数

    //构造函数
    Sales_data(const std::string &s, unsigned n, double p):
        bookNo(s),units_sold(n),revenue(p*n){}

    //其余构造函数都委托给另外构造函数
    Sales_date():Sales_data("",0,0) {}
    Sales_data(std::string s):Sales_data(s,0,0) {}
    Seles_data(std::istream &is):Sales_data() {read(is, *this);}

聚合类

聚合类使得用户可以直接访问其成员,并且具有特殊的初始化语法形式。

一般使用struct定义的类就是聚合类

并且声明一个类的对象的时候,初始值顺序必须和声明顺序一致

字面值常量类

class Debug
{
public:
    constexpr Debug(bool b=true):hw(b),io(b),other(b) {}
    constexpr Debug(bool h, bool i, bool o):hw(h),io(i),other(o) {}
    constexpr bool any() {return hw || io || other;}
    void set_io(bool b) {io=b;}
    void set_hw(bool b) {hw=b;}
    void set_other(bool b) {other=b;}
private:
    bool hw;        //硬件错误
    bool io;        //IO错误
    bool other;     //其他错误
};

使用了constexpr的构造函数意味着1、不能有返回值2、拥有唯一可执行的语句返回语句。。。。综合就是函数体应该是空的。

这里我觉得书上这样翻译纯属扯淡,自相矛盾,应该看英文版本的!!!可惜my English is very pool!!

PS:坚持不懈,不在多,而在精华,但是有时候会给一点糟粕,那是因为时间过得太快,不能再那些没必要的小事上浪费时间,但是碰到自己不熟悉的,不清楚的那么你就得好好看看一看,停下脚步认真的学一学了!!!!

智能家居引热议 那些智能家电APP你知道吗?

时间: 2024-10-13 12:47:59

智能家居引热议 那些智能家电APP你知道吗?的相关文章

三地直通,慧聚南翔——第19期智能家居主题沙龙在上海蓝天创业广场召开

北京.上海.深圳三个城市被认为是中国的物联网.智能家居.智能硬件等科技行业发展的晴雨表和创新创业风向标,三地科技发展方式各有特色,而三地观点的碰撞将会产生什么样的效果?2014年9月24日,第19期智能家居主题沙龙移师上海蓝翔这个历史文化古镇,由物联网智库联合上海蓝天经济城共同主办,上演了一场智能家居领域京沪深三地思想碰撞盛宴. 本次沙龙是智能家居系列主题沙龙在上海的首秀,邀请到了国际物联网促进会.亚太地区智能家居协会秘书长柏斯维,上海蓝天经济城总经理裴家文,上海工商联物联网商会秘书长李强作为嘉

三连败,慧聚南翔——文章19在上海蓝天创业广场隆重举行智能家居沙龙

北京.上海.深圳三个城市被认为是中国物联网的互联网.智能家居.创新和创业的晴雨表和风向标智能硬件等科技产业的发展,三科学技术的发展有其自身的特点.这三种观点的碰撞会产生什么样的效果?2014年9月24日本.文章19居主题沙龙移师上海蓝翔这个历史文化古镇,由物联网智库联合上海蓝天经济城共同主办.上演了一场智能家居领域京沪深三地思想碰撞盛宴. 本次沙龙是智能家居系列主题沙龙在上海的首秀,邀请到了国际物联网促进会.亚太地区智能家居协会秘书长柏斯维.上海蓝天经济城总经理裴家文,上海工商联物联网商会秘书长

过度依赖App 智能家居遇产业壁垒

眼下,App虽然可以实现智能家居总开关的功能,可以沉淀用户数据,可以实现一定程度的交互,但App只是一款应用程序,并不能自主识别应用场景.这种情况下,智能家居对家庭环境的改善效果并不明显.芯片厂商Marvell希望,未来可以脱离App来使用物联网技术. “Win10之家的调查数据显示,55%的中国消费者对新技术有热情,大家对将自己的住所改造成智能家庭非常有兴趣.”Marvell公司全球副总裁.无线与物联网业务部总经理Philip Poulidis近日表示. Marvell是全球知名的芯片公司,其

第12章 智能家居

12.1智能家居概述 12.1.1传统家居与智能家居 物联网智能家居.传统智能家居区别 传统智能家居发展了20多年,至今为止取得了一定的进步,但技术落后.观点陈旧.创新乏力一直是中国传统智能家居企业的整体特征. 今天,随着物联网技术的高速发展,无线物联网技术给传统智能家居带来了全新的产业机会,一些全球优秀企业纷纷涉足物联网智能家居行业.在我国,虽然部分企业在无线物联网核心技术上取得了很大突破,但我们也应该清醒地看到大量技术落后的产品充斥市场仍是当前我国智能家居行业的重要特征.很多传统企业甚至一些

智能家居初学者小米、美的和京东们将梦归何处?

提起智能家居,你可能会想起电影里自动拉开的窗帘.语音控制的电视和自动亮起的吊灯.在国内,小米.美的.京东等国内企业也已经进军智能家居领域,但智能家居走到现在,似乎已经形成了一个难以打破的僵局:智能家居已经广为人知,但普及率却非常低. 小米.美的.京东:掘金者们的智能家居之梦 近些年来,集智能.便捷.创新于一体的智能家居产品给人们带来了精神与身体上的解放,智能家居也因其特殊的家庭应用场景而备受关注.而国内涉足智能家居领域的企业也是数不胜数,主要有三类,一类是互联网科技公司,如小米.百度等:一类是传

2019智能家居展览会-资讯智能家居博览会

展会将于2019年5月16日至18日在北京举行,本届展会面积将达到35000平方米,本届将规划六大主题展区分别为智慧家居.智慧养老.智能硬件.智慧娱乐.智慧社区.智能机器人等覆盖智能家居全领域,大会将是专业性最强.规格最高.规模最大.影响力最广.实效性最强的智能行业展会.[展会推广的好处在于客户可以直接真实近距离的看到产品并和供应商交流,同时很多知名展会人流是很大的,一天有几千人参展而且都是行业相关人士,而且展会上当下签单的也很多,线上推广是一个长期过程,和客户只能以聊天工具和电话沟通,即便客户

智能家居APP开发

智能家居APP开发 欢迎加入APP开发技术群:347072638 前言,随着智能硬件设备的流行,智能家居开始红火,智能家居就是家用电器的智能化,包括智能锁,灯,空调,灯,音箱等等,移动设备通过WIFI或者蓝牙4.0技术控制智能家居将是未来的一种趋势.各大平台蜂拥而入,苹果智能家居HomeKit,三星智能家居平台,小米路由器等等风起云涌,控制家庭大战一触而发.然而站在APP开发者的角度来分析一下当前形势,APP开发的出路在哪里? 智能家居在各大平台已经出了一整套解决方案,包括APP端的设计,功能实

智能家居平台乱战,京东欲借“超级APP”争夺控制中心

近两年,智能硬件一路走红,衍生出一系列诸如智能手环.智能路由器等设备,BAT巨头的加入更是让整个市场异常火爆,各家都在尝试以智能硬件产品为切入,在万物互联时代找到自己的新位置. 根据今年美国的CES情况来看,更多的厂商把精力聚焦在智能家居设备,以此趋于构建一个完整的智能家居平台,但是当我们见识到市场上不断推陈出新的智能设备后,就产生一个问题:谁将统一控制这些设备,担当控制中心的角色?  2014年1月,两位苹果前员工创办的智能家居公司Nest被谷歌以32亿美元的高价收购,当时关于Nest的讨论甚

云技术,智能家居与嵌入式——前景好的产业

第一章 云计算技术及在日常生活中的应用 1.1  三大应用 1.1.1 云物联 物联网 顾名思义,"物联网就是物物相连的互联网".这有两层意思:第一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络:第二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信. 物联网的两种业务模式: (1)MAI(M2M Application Integration), 内部MaaS: (2)MaaS(M2M As A Service), MMO, Multi-Tenant