iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++中初始化和赋值的区别是什么
  • 761
分享到

C++中初始化和赋值的区别是什么

2023-06-17 16:06:26 761人浏览 安东尼
摘要

这篇文章给大家介绍c++中初始化和赋值的区别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。对于基本数据类型差别不大:比如:int a = 12; // initi

这篇文章给大家介绍c++中初始化和赋值的区别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

对于基本数据类型差别不大:

比如:

int a = 12; // initialization, copy 0X000C to a  a = 12; // assignment, copy 0X000C to a

但是对用户自定义的数据类型比如String 的C++初始化和赋值就差别很大:

class String {  public:  String( const char *init ); // intentionally not explicit!  ~String();  String( const String &that );  String &operator =( const String &that );  String &operator =( const char *str );  void swap( String &that );  friend const String // concatenate  operator +( const String &, const String & );  friend bool operator <( const String &, const String & );  //...  private:  String( const char *, const char * ); // computational  char *s_;  };

初始化的构造过程比较简单:先分配一个足够大的空间然后填充上数据:

String::String( const char *init ) {  if( !init ) init = "";  s_ = new char[ strlen(init)+1 ];  strcpy( s_, init );  }

析构过程更简单:

String::~String() { delete [] s_; }

但是如果赋值操作就复杂多了:

String &String::operator =( const char *str ) {   if( !str ) str = "";   char *tmp = strcpy( new char[ strlen(str)+1 ], str );   delete [] s_;   s_ = tmp;   return *this;   }

关于C++中初始化和赋值的区别是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: C++中初始化和赋值的区别是什么

本文链接: https://www.lsjlt.com/news/290805.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++中初始化和赋值的区别是什么
    这篇文章给大家介绍C++中初始化和赋值的区别是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。对于基本数据类型差别不大:比如:int a = 12; // initi...
    99+
    2023-06-17
  • c语言多维数组初始化和赋值的方法是什么
    在C语言中,多维数组的初始化和赋值可以使用以下方法: 静态初始化:在定义数组时,直接给出各个元素的初始值。 int arr[3]...
    99+
    2023-10-23
    c语言
  • hashmap初始化直接赋值的方法是什么
    在Java中,可以使用如下方法直接初始化一个HashMap并赋值: Map<String, Integer> map =...
    99+
    2024-03-11
    hashmap
  • java初始化数组赋值的方法是什么
    在Java中,可以使用以下方法来初始化数组并赋值: 直接在定义数组时赋值: int[] numbers = {1, 2, 3, ...
    99+
    2024-03-14
    java
  • java声明、初始化与赋值的方法是什么
    在Java中,声明、初始化和赋值是分开进行的。声明变量是指在程序中声明一个变量的类型和名称,例如:int number;初始化变量是...
    99+
    2023-09-15
    java
  • java中的数组初始化赋初值方式
    目录java数组初始化赋初值方法一方法二方法三数组互相赋值方式使用for循环使用Object的clone()使用System的静态方法arraycopy()java数组初始化赋初值 ...
    99+
    2024-04-02
  • java初始化数组赋值要注意什么
    在Java中,初始化数组并赋值时需要注意以下几点: 确定数组的类型和大小:首先要确定所需数组的类型和大小。数组的大小可以是固定的...
    99+
    2023-10-27
    java
  • C++中左值和右值的区别是什么
    今天给大家介绍一下C++中左值和右值的区别是什么。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。左值右值定义:左值指的是既能够出现在等号左边也能出现在等号右边的...
    99+
    2023-06-29
  • go语言结构体初始化及赋值的方法是什么
    在Go语言中,结构体的初始化及赋值可以通过以下两种方法进行: 字面量初始化:直接使用结构体类型的名称,并在花括号内指定字段的初始值...
    99+
    2023-10-25
    go语言
  • C语言 指针的初始化赋值案例详解
    目录1、指针的初始化2、指针的赋值3、指针常量4、指针初始化补充5、void *型指针6、指向指针的指针1、指针的初始化 指针初始化时,“=”的右操作数必须为内存中数据的地址,不能够...
    99+
    2024-04-02
  • C#中的变量初始化形式是什么
    本篇内容主要讲解“C#中的变量初始化形式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#中的变量初始化形式是什么”吧!C# 中的变量初始化变量通过在等号后跟一个常量表达式进行初始化(赋值...
    99+
    2023-06-17
  • java实例化和初始化的区别有哪些
    Java实例化和初始化的区别如下:1. 实例化是创建一个对象的过程,通过使用new关键字调用构造方法来实例化一个对象。实例化后,对象...
    99+
    2023-08-24
    java
  • SQL SERVER中SELECT和SET赋值有什么区别
    这篇文章主要介绍了SQL SERVER中SELECT和SET赋值有什么区别,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。SELECT...
    99+
    2024-04-02
  • = 和 := 赋值运算符有什么区别?
    实际上,它们都是赋值运算符,用于赋值,但它们之间的显着区别如下 -= 运算符赋值为SET 语句的一部分或作为 UPDATE 语句中 SET 子句的一部分,在任何其他情况下 = 运算符都被解释为比较运算符。另一方面,:= 运算符分配一个值,并...
    99+
    2023-10-22
  • c语言数组赋初值的方法是什么
    在C语言中,可以通过以下几种方式为数组赋初值: 在声明数组的同时为数组元素赋初值,例如: int arr[5] = {1, 2,...
    99+
    2024-03-05
    c语言
  • c++数组初始化的方法是什么
    C++中有多种方式可以初始化数组:1. 使用赋值语句逐个初始化数组元素。```cppint arr[5];arr[0] = 1;ar...
    99+
    2023-09-28
    c++
  • JavaScript赋值,浅复制和深复制的区别是什么
    本篇内容介绍了“JavaScript赋值,浅复制和深复制的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、变量赋值不知道会不会有...
    99+
    2023-06-30
  • C++和C中const的区别是什么
    本篇内容介绍了“C++和C中const的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!const,这个词字面意思为:常数。这就表示...
    99+
    2023-06-21
  • C++聚合体初始化的方法是什么
    本篇内容介绍了“C++聚合体初始化的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!聚合体初始化(aggregate initial...
    99+
    2023-07-05
  • c#静态类初始化的方法是什么
    在C#中,静态类的初始化方法是使用静态构造函数。静态构造函数在类被加载时自动调用,无需手动调用。静态构造函数一般用于初始化静态变量和...
    99+
    2024-03-02
    c#
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作