IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 第三章 转向现代C++ -> 正文阅读

[C++知识库]第三章 转向现代C++

c++11和c++14新特性中auto、智能指针、移动语义、lambda表达式、并发等等相关内容

item7 创建对象时区分()和{}

  1. 大括号语境最为广泛,阻止隐士窄化型别转换,对most vexing parse免疫
double x, y, z;
int sum1{x + y + z}; //错误!窄化转换
int sum2(x + y + z); //通过,进行表达式截断
int sum3 = x + y + z; // 同上
Widget w(); //此处声明一个名为w、返回一个Widget型别对象的函数
Widget w2{}; // 调用无参构造函数
  1. 在函数重载期间,只要有可能,大括号初始化物会与initialize_list型别的形参相匹配,即使有更匹配的形参列
#include <iostream>
using namespace std;
class Widget{
private:
  double i_;
public:
  double GetVal(){
    return i_;
  }

  Widget(){
    cout<<"default ctor"<<endl;
  }

  Widget(double i):i_(i){
    cout<<"param ctor"<<endl;
  }
  Widget(const Widget &rhs){
    cout<<"copy ctor"<<endl;
    i_ = rhs.i_;
  }
  Widget& operator=(const Widget &rhs){
    cout<<"copy assignment"<<endl;
    i_ = rhs.i_;
    return *this;
  }
  Widget (std::initializer_list<long double> arg){
    std::cout << "initializer call" << std::endl;
  }

  operator double(){
    cout<< "double call" <<endl;
    return i_;
  }
};
int main(int argc, char const *argv[])
{
  // test(1);
  Widget w1 {};
  // cout<<"================"<<endl;
  // Widget w2;
  // w2 = 1;//调用有参构造生成临时对象
  // int a = 2;
  // a += w1; 
  // cout<< a << endl;
  // Widget w2{w1};
  // std::cout << "w2 value " << w2.GetVal() << std::endl;
  return 0;
}
  1. 使用大括号还是小括号效果不一样的例子是:使用两个参数来创建std::vector对象
vector<int> v1(10, 20); //10个值为20的对象
vector<int> v2{10, 20}; // 包含值为10,20的对象
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-04 12:40:48  更:2021-10-04 12:41:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 0:00:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码