首页
学习
活动
专区
圈层
工具
发布

【C++】匿名对象 ② ( 将 “ 匿名对象 “ 初始化给变量 | 将 “ 匿名对象 “ 赋值给变量 )

C++ 编译器 发现 使用 匿名对象 时 , 会根据 匿名对象 的用法 , 决定对 匿名对象的 处理 ; 匿名对象单独使用 : 如果只是单纯的使用 匿名对象 , 没有涉及到 将 匿名对象 赋值给其它变量..., 该对象会一直持续到该作用域结束 ; 使用匿名对象为变量赋值 : 如果 创建 匿名对象 后 , 还使用 匿名对象 为 已存在的变量 赋值 , 此时 编译器 会将 匿名对象 的值赋值给 已存在的变量...; 下面介绍下上述操作的原理 ; 2、匿名对象转为普通对象 先 创建一个 " 匿名对象 " , 然后将匿名对象 赋值给 Student s 变量 ; // 创建匿名对象, 并将其赋值给变量 Student..., 自然就不会被销毁 ; 这里 将 " 匿名对象 " 直接转为 " 普通对象 " , 这里只是进行单纯的转换 , 不涉及拷贝复制的情况 ; 3、代码示例 - 将 " 匿名对象 " 赋值给变量 代码示例...不涉及 匿名对象 销毁操作 ; 另外一种就是将 匿名对象 赋值给 已存在的变量 , C++ 编译器会进行如下处理 : 首先 , 读取 匿名对象 的值 , 将值赋值给已存在的变量 , 然后 , 销毁 匿名对象

1.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    使用下标给string类型赋值之后,cout输出变量为空的问题。

    今天写创建文件夹的时候,怎么创建都不会,反复修改,确定错误是出在了string类型的变量上面。...,以及子文件夹,根据参数来做,有则略过,无则创建 但是我发现根本创建不了文件夹 我试着输出循环中的fileurl_s_cy[i],能够正常输出我想要的字符 但是当我输出fileurl_s_cy的时候出了问题...,fileurl_s_cy整体长度依旧是0 我可以使用std::stringfileurl_s_cy = “www/ccccc” 这种形式正常创建文件夹,但就是无法使用下标的赋值方式 经过一番百度,得知是因为声明...fileurl_s_cy的时候没有开辟空间,所以无法使用 奇怪的是输出fileurl_s_cy[i]居然也不报错。...解决方法如下: 声明的时候改为std::string fileurl_s_cy(len,’\0’); 这样就可以正常使用下标赋值,输出以及整体输出 怕忘记,记录与此。

    6.1K40

    有史以来最全的异常类讲解没有之一!第二部分爆肝2万字,终于把Python的异常类写完了!最全Python异常类合集和案例演示,第二部分

    except IndexError as e::如果 try 块中的代码触发了 IndexError 异常,这行代码将捕获该异常,并将其异常对象赋值给变量 e。...except KeyError as e::如果 try 块中的代码触发了 KeyError 异常,这行代码将捕获该异常,并将其异常对象赋值给变量 e。这里的 e 将包含引发异常的键的信息。...except NameError as e::如果 try 块中的代码触发了 NameError 异常,这行代码将捕获该异常,并将其异常对象赋值给变量 e。...这种异常通常发生在函数内部,当你尝试在变量赋值之前就使用它时。...# 局部变量赋值后的值是: 这是一个已赋值的局部变量 运行结果 当运行修改后的代码时,my_function 函数中的 try 块会尝试打印 local_variable 的值。

    1.6K10

    Python程序员经常犯的10个错误,这些坑你踩过吗?

    因此,bar参数在初始化时为其默认值(即一个空列表),即foo()首次定义的时候,但当调用foo()时(即,不指定bar参数时)将继续使用bar原本已经初始化的参数。...所以,在上面这个例子中,IndexError 这个异常并不是被except语句捕捉到的,而是被绑定到一个名叫 IndexError的参数上时引发的。...上面的问题之所以会发生是因为当你给作用域中的一个变量赋值时,Python 会自动的把它当做是当前作用域的局部变量**,从而会隐藏外部作用域中的同名变量**。...很多人会感到很吃惊,当他们给之前可以正常运行的代码的函数体的某个地方添加了一句赋值语句之后就得到了一个 UnboundLocalError 的错误。...此外,我们对 lst 进行的赋值操作是基于 lst 自身(这再一次被Python当成了局部变量),但此时还未定义。因此出错!

    73900

    Python28 异常

    尝试执行下面的代码 data['name'] except KeyError as k: #否则如果出现了KeyError这个错误,就执行下面的代码; #如果出现KeyError错误,就捕获错误结果然后赋值给这个...) as k: #可以通过括号将多种错误写到一起;这种方式适用当出现错误时使用同一种处理办法的场景 print ('错误:',k) 执行结果: 错误: list index out of range...被按下 NameError 使用一个还未被赋予对象的变量 SyntaxError Python代码非法,代码不能编译(语法错误) TypeError 传入对象类型与要求的不符合 UnboundLocalError...试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量, 导致你以为正在访问它 ValueError 传入一个调用者不期望的值,即使值的类型是正确的 更多异常: ArithmeticError...self.message except LiSiException as info: #将触发后的信息赋值给info print (info) 执行结果: 自定义异常

    69330

    Python异常处理详解

    没有产生异常时 finally: # 一定会执行的 注意,当抛出的异常无法被匹配时,将归类于空的except...通过as关键字可以将except捕获到的异常对象赋值给data变量。用法稍后会解释,现在需要知道的是,在python 3.x中,变量data只在当前的except块范围内有效,出了范围就会被回收。...如果想要保留异常对象,可以将data赋值给一个变量。例如下面的b在出了try范围都有效,但是a在这个except之后就无效了。...而且,可以通过在except中使用as来将对象赋值给变量: try: 1/0 except Exception as a: print(a) 变量a在出了except的范围就失效,所以可以将它保留给一个不会失效的变量...实际上,当需要获取当前处理的异常类时,还可以通过异常对象的__class__来获取,因为异常对象可以在except/as中赋值给变量: class General(Exception):pass def

    1.8K20

    Python内置数据结构大总结

    IndexError的异常。...: ## 当赋值的序列连续时 # 对切片赋值,会替代原来的元素 >>> lst = list(range(0, 10)) >>> lst [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >...7, 8, 9] >>> lst = list(range(0, 10)) >>> lst[3:5] = 'x' >>> lst [0, 1, 2, 'x', 5, 6, 7, 8, 9] ## 当赋值的序列不连续时...解构把集合里的元素复制给变量; 封装是用变量构建元组。 解构:按照元素顺序,把线性解构的元素依次赋值给变量。...: 左边不能只有一个星号,还要有其他元素 如果左边不用星号,那么左边的元素个数要与右边的元素个数相同 左边变量数小于右边元素个数,且左边没有加星号会报错 元素按照顺序赋值给变量 变量和元素必须匹配 加星号变量

    1.2K70

    Python基础语法(2)

    函数形参     函数中的参数名称为‘形参’,调用函数时传递的值为‘实参’ 2. 局部变量     在函数内定义的变量与函数外具有相同名称的其他变量没有任何关系,即变量名称对于函数来说是局部的。...这称为变量的作用域。     global语句, 为定义在函数外的变量赋值时使用global语句。...,即不能在声明函数形参的时候,先声明有默认值的形参而后声明没有默认值的形参,只是因为赋给形参的值是根据位置而赋值的。...优点:不必担心参数的顺序,使函数变的更加简单;假设其他参数都有默认值,可以只给我们想要的那些参数赋值。...判断列表中是否包含某项可以使用in, 比如 l = [1, 2, 3]; print 1 in l; #True;支持索引和切片操作;索引时若超出范围,则IndexError;使用函数len()查看长度

    1.6K130

    有史以来最全的异常类讲解没有之一!爆肝3万字,终于把Python的异常类写完了!最全Python异常类合集和案例演示,第一部分

    except AssertionError as e::如果 try 块中的代码触发了 AssertionError 异常,这行代码将捕获该异常,并将其赋值给变量 e。...except OSError as e::如果 try 块中的代码触发了 OSError 异常,这行代码将捕获该异常,并将其赋值给变量 e。...except OSError as e::如果 try 块中的代码触发了 OSError 异常,这行代码将捕获该异常,并将其赋值给变量 e。...except ImportError as e::如果 try 块中的代码触发了 ImportError 异常,这行代码将捕获该异常,并将其赋值给变量 e。...except IndexError as e: 捕获 IndexError 异常,并将其异常对象赋值给变量 e,然后打印错误信息。

    2K10

    12道 Python面试题总结

    引用计数 当给一个对象分配一个新名称或者将一个对象放入一个容器(列表、元组或字典)时,该对象的引用计数都会增加。...当使用del对对象显示销毁或者引用超出作用于或者被重新赋值时,该对象的引用计数就会减少。 可以使用sys.getrefcount()函数来获取对象的当前引用计数。...(赋值,浅拷贝,深拷贝的区别) 赋值(=),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。...10、以下代码将输出什么? ? 答案 以上代码将输出 [],并且不会导致一个 IndexError。...正如人们所期望的,试图访问一个超过列表索引值的成员将导致 IndexError(比如访问以上列表的 list[10])。

    1.6K90

    【Python环境】12道 Python面试题总结

    引用计数 当给一个对象分配一个新名称或者将一个对象放入一个容器(列表、元组或字典)时,该对象的引用计数都会增加。...当使用del对对象显示销毁或者引用超出作用于或者被重新赋值时,该对象的引用计数就会减少。 可以使用sys.getrefcount()函数来获取对象的当前引用计数。...(赋值,浅拷贝,深拷贝的区别) 赋值(=),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。...10、以下代码将输出什么? ? 答案 以上代码将输出 [],并且不会导致一个 IndexError。...正如人们所期望的,试图访问一个超过列表索引值的成员将导致 IndexError(比如访问以上列表的 list[10])。

    1.2K50

    我的 python 学习笔记

    变量 python 是一门动态语言,在赋值时可以不断改变,比如: a = 123 print(a) # 终端输出数值 123 a = 'abc' print(a) # 终端输出字符串 abc 这是允许的...并且在赋值上面有一个逻辑顺序,比如定义一个 a = 'a' 的变量。在 Python 中其实走了两步,先创造了一个字符串 a ,然后将这个字符串赋值给变量 a 。...其实这在数学上是有些反逻辑的,x = x + 2 这个计算是行不通的在数学上,但是在计算机中,先计算 x + 2 ,然后将其赋值给左侧的 x ,这是计算机的逻辑。...“对象”,而变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量给关联起来。...对变量赋值x = y是把变量x指向真正的对象,该对象是变量y所指向的。随后对变量y的赋值不影响变量x的指向。

    60110
    领券