C++ 11 初始化对象

admin2024-04-03  0

1 概述

在C++11中,可以使用多种方式来初始化对象。以下是一些常见的初始化方法:

2 列表初始化(Uniform Initialization)

int a{10}; // 列表初始化一个整数
int b = {10}; // 同样的,这也是列表初始化
 
std::string str{"Hello, World!"}; // 列表初始化一个字符串对象
 
// 结构体和类的列表初始化
struct Point {
    int x, y;
};
 
Point p{10, 20}; // 使用列表初始化结构体

3 默认构造函数初始化

int a{}; // 默认构造一个整数,值为0
 
std::string str{}; // 默认构造一个空字符串
 
Point p{}; // 默认构造结构体

说明:如果类型是对象,可以省略{}

4 值初始化(Value Initialization)

int a(0); // 值初始化一个整数
 
std::string str = ""; // 值初始化一个空字符串
 
Point p = Point(); // 值初始化结构体

5 直接初始化

int a = 10; // 直接初始化一个整数
 
std::string str = "Hello, World!"; // 直接初始化一个字符串
 
Point p = {10, 20}; // 直接初始化结构体

6 拷贝初始化

int a = a1; // 拷贝初始化一个整数
 
std::string str = str1; // 拷贝初始化一个字符串
 
Point p = p1; // 拷贝初始化结构体

7 总结

  在实际应用中,选择哪种初始化方式取决于具体的需求和上下文。列表初始化通常用于明确指定初始化值,而默认构造函数初始化则用于创建具有默认值的对象。直接初始化和拷贝初始化则根据是否使用等号和是否为原始数据类型有所区别。值初始化通常用于变量声明而不是对象初始化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!