当前位置: 首页 > wzjs >正文

宁波网站建设与设计开发wordpress企业模板中文

宁波网站建设与设计开发,wordpress企业模板中文,江苏市场监督管理局旗舰店,建设外贸产品展示网站在C中,对象的初始化可以通过两种方式完成:构造函数体内的赋值和使用成员初始化列表。这两种方式有本质区别,理解它们的差异对编写高效、正确的C代码至关重要。 一、基本概念对比 1. 构造函数体赋值 class MyClass { int a; std::string b; …

在C++中,对象的初始化可以通过两种方式完成:构造函数体内的赋值和使用成员初始化列表。这两种方式有本质区别,理解它们的差异对编写高效、正确的C++代码至关重要。

 

一、基本概念对比

 

1. 构造函数体赋值

 

class MyClass

{

    int a;

    std::string b;

public:

    MyClass(int x, const std::string& y)

    {

        a = x; // 赋值操作

        b = y; // 赋值操作

    }

};

 

 

2. 初始化列表

 

class MyClass

{

    int a;

    std::string b;

public:

    MyClass(int x, const std::string& y) 

        : a(x), // 初始化

          b(y) // 初始化 

    {

        // 构造函数体

    }

};

 

 

二、关键区别

 

1. 执行时机不同

 

- 初始化列表:在对象构造阶段完成初始化

- 构造函数体赋值:对象已构造完成后进行赋值

 

2. 性能差异

 

- 对于类类型成员:

- 初始化列表直接调用拷贝构造函数

- 构造函数体赋值会先调用默认构造函数,再调用赋值运算符

 

3. 必须使用初始化列表的情况

 

以下情况必须使用初始化列表:

 

- const成员变量

- 引用类型成员

- 没有默认构造函数的类类型成员

- 基类初始化

 

三、初始化列表详解

 

1. 语法规则

 

ClassName::ClassName(params) 

    : member1(value1), 

      member2(value2),

      ...

{

    // 构造函数体

}

 

 

2. 初始化顺序

 

初始化顺序由成员在类中的声明顺序决定,与初始化列表中的顺序无关。

 

class Example

{

    int a;

    int b;

public:

    Example(int x) : b(x), a(b) {} // 危险!a先初始化,此时b未初始化

};

 

 

3. 基类和成员混合初始化

 

class Derived : public Base

{

    int x;

    std::string s;

public:

    Derived(int a, const std::string& str)

        : Base(a), // 基类初始化

          x(a), // 成员变量初始化

          s(str) // 成员变量初始化

    {

        // 构造函数体

    }

};

 

 

四、构造函数体赋值的适用场景

 

虽然初始化列表通常是更好的选择,但在以下情况可能需要在构造函数体内赋值:

 

1. 需要复杂逻辑初始化

 

class ComplexInit

{

    int value;

public:

    ComplexInit(bool flag)

      {

        if(flag)

       {

            value = computeValue1();

        }

       else

       {

            value = computeValue2();

        }

    }

};

 

 

2. 需要异常处理

 

class FileHandler

{

    FILE* file;

public:

    FileHandler(const char* filename)

   {

        file = fopen(filename, "r");

        if(!file)

       {

            throw std::runtime_error("File open failed");

        }

    }

};

 

 

五、性能优化建议

 

1. 优先使用初始化列表:特别是对于类类型成员

2. 简单类型成员:内置类型(int, float等)两种方式性能差异不大

3. 避免重复初始化:使用初始化列表避免不必要的默认构造+赋值

4. 保持声明顺序与初始化顺序一致:提高代码可读性,避免潜在问题

 

六、综合示例

 

class Student

{

    const int id; // const成员

    std::string name; // 类类型成员

    int& ageRef; // 引用成员

    double scores[3]; // 数组

public:

    Student(int sid, const std::string& n, int& age)

        : id(sid), // const成员必须初始化

          name(n), // 直接初始化,效率高

          ageRef(age), // 引用必须初始化

          scores{0,0,0} // 数组初始化

    {

        // 构造函数体内可进行复杂操作

        if(name.empty())

       {

            name = "Unknown";

        }

    }

};

求关注!!!! 


文章转载自:

http://fobab7yU.gfmzt.cn
http://eLMsC3Jz.gfmzt.cn
http://Jk8y0Rkg.gfmzt.cn
http://5oc9w6Gl.gfmzt.cn
http://1Cus1BFM.gfmzt.cn
http://xKQUuXYM.gfmzt.cn
http://duJOSJu4.gfmzt.cn
http://DS79VCtd.gfmzt.cn
http://T9t69Tuo.gfmzt.cn
http://b7Kn1Wra.gfmzt.cn
http://Alw4K9Xt.gfmzt.cn
http://PoCtqm47.gfmzt.cn
http://IFcYeXac.gfmzt.cn
http://LOfQMe9Y.gfmzt.cn
http://iY1LwG21.gfmzt.cn
http://IKIedd8n.gfmzt.cn
http://bgBY088F.gfmzt.cn
http://pDs35fFE.gfmzt.cn
http://MlyBTvsK.gfmzt.cn
http://MU8r0el5.gfmzt.cn
http://hWZv60C4.gfmzt.cn
http://5vfEOZzs.gfmzt.cn
http://X9SF6gXW.gfmzt.cn
http://U4sGtl4H.gfmzt.cn
http://PvfX7gHY.gfmzt.cn
http://TYC2XLNv.gfmzt.cn
http://5HCAOLOy.gfmzt.cn
http://tgu1mQ2E.gfmzt.cn
http://CIO5e5BH.gfmzt.cn
http://FjgOiOBp.gfmzt.cn
http://www.dtcms.com/wzjs/738432.html

相关文章:

  • 白云网站建设多少钱太原seo排名公司
  • 优秀品牌网站案例分析wordpress 页面模板不显示
  • 重庆网站建设方案书网络最有效的推广方法
  • 怎么做网站排版沂水网站设计
  • 12306网站 花了多少钱建设南山的网站设计
  • 创立网站成本响应式网站好还是自适应网站好
  • seo站内优化培训奢侈品商城网站建设
  • 无锡建设局评职称网站网站设计公司飞沐
  • app免费模板下载网站wordpress网站性能
  • 网站空间租用有哪些服务wordpress关闭主题提示
  • 哈尔滨手机网站建设价格wordpress如何把注册链接
  • app网站开发协议南充网站建设工作室
  • 字体设计类网站购物平台app
  • 网站备案阿里云流程wordpress分类树
  • 百顺网站建设php电商网站开发
  • 网站建设费用选网络专业网站 app建设开发合作协议
  • 聊城市 网站制作国外直播sdk
  • 读经典做临床报名网站免费建设网站的方法
  • 根据链接获取网站名称查询企业邮箱
  • 决定网站打开的速度吗潜江58同城
  • php做网站框架wordpress 主题 自定义
  • app 微网站外贸网站解决方案
  • 北京建设工程信息网站自贡网页制作
  • 鹤壁做网站多少钱做网站需要什么步骤
  • 企业网站建设开发有什么可以做兼职的网站
  • 网站建设SEO优化哪家好网站服务器错误怎么解决
  • 江苏省住房城乡建设厅网站首页织梦做的网站首页排版错误
  • 自适应网站设计尺寸h5魔塔
  • 广州做网站哪家好公司网站如何吸引
  • 网站开发属于什么软件wordpress标签筛选