`
daojin
  • 浏览: 676933 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

函数返回应该是个右值吧,为啥能放在左边(红色标示的部分)?

 
阅读更多
1楼
class A1
{
public:
    A1()
    {
        std::cout<<"A1()"<<std::endl;
    }
    A1(const A1& a1)
    {
        std::cout<<"A1(const A1& a1"<<std::endl;
    }
    A1& operator=(const A1& a1)
    {
        std::cout<<"operator=(const A1& a1)"<<std::endl;
    }
    int* pi;
};
A1 GetA()
{
    std::cout<<" GetA() begin"<<std::endl;
    A1 a1;
    std::cout<<" GetA() end"<<std::endl;
    return a1;
} 
int main()
{
   A1 a1;
   GetA() = a1;
}
0
0
分享到:
评论

相关推荐

    左值与右值的引用

    这是关于C++左值与右值引用的课程视频,课程易于理解,可以很快掌握

    muluoleiguo#interview#右值引用1

    由于右值通常不具有名字,所以我们一般只能通过右值表达式获得其引用,比如:假设ReturnRvalue()函数返回一个右值,那么上述语句声明了一个名为a的右值引用

    c++的右值引用具体用法

    什么是右值? 凡有名者,皆为左值.左值对应变量的存储位置,右值对应变量的值本身,右值可以被赋值给左值,或者绑定到引用. 右值引用的优点? 类的右值是一个临时对象,如果没有被绑定到引用,在表达式结束时候,...

    C++中的左值和右值

     这两个概念在C语言中比较容易理解:左值能放在赋值语句的左边,右值不能。但是当来到C++时,二者的理解比较复杂了(PS:有对象真是麻烦)  简单的归纳:  · 当一个对象被用作右值的时候,用的是对象的值...

    关于c++的 右值 右值引用 move

    第一次接触c++move操作就懵逼了,一直想探个究竟,但是右值以及右值引用思考了好长时间,就是不得要领,今天终于有所收获,写下第一篇博客,一方面为了帮助一些刚入门的朋友,另一方面也是帮助自己今后复习。...

    C语言指针以及区分左值和右值的技巧(整理)

    Android内核还是Linux所以本分分类放在了Linux这里。其实我是想放到OS Android里面对的,但是没有这个目录。 整理了C开发的一些资源。也有一些注释和精简。 C语言主要就是指针,其中的三篇文章是我阅读相关内容获得...

    C 语言编程常见问题解答.chm

    9.8 为什么用const说明的常量不能用来定义一个数组的初始大小? 9.9 字符串和数组有什么不同? 第10章 位(bit)和字节(byte) 10.1 用什么方法存储标志(flag)效率最高? 10.2 什么是“位屏蔽(bit masking)”...

    左值和右值

    左值和右值

    深入解读C++中的右值引用

    右值引用(及其支持的Move语意和完美转发)是C++0x将要加入的最...在标准C++语言中,临时量(术语为右值,因其出现在赋值表达式的右边)可以被传给函数,但只能被接受为const &类型。这样函数便无法区分传给const &的

    C语言编程要点

    9.8. 为什么用const说明的常量不能用来定义一个数组的初始大小? 145 9.9. 字符串和数组有什么不同? 145 第10章 位(bit)和字节(byte) 147 10.1. 用什么方法存储标志(flag)效率最高? 147 10.2. 什么是“位屏蔽(bit ...

    C++11 模板参数的“右值引用”是转发引用吗

    “转发引用”(forwarding reference)旧称“通用引用”(universal reference),它的“通用”之处在于你可以拿一个左值绑定给转发引用,但不能给右值引用: void f(int&& i) { } template void g(T&& obj) { } ...

    浅谈C++左值引用和右值引用

    左值是可以放在赋值号左边可以被赋值的值;左值必须要在内存中有实体; 右值当在赋值号右边取出值赋给其他变量的值;右值可以在内存也可以在CPU寄存器。  一个对象被用作右值时,使用的是它的内容(值),被当作左值...

    C++11的右值引用的具体使用

    C++11 引入了 std::move 语义、右值引用、移动构造和完美转发这些特性。由于这部分篇幅比较长,分为3篇来进行阐述。 在了解这些特性之前,我们先来引入一些问题。 一、问题导入 函数返回值是传值的时候发生几次...

    右值引用和移动语义1

    右值引用和移动语义1

    浅析C++11中的右值引用、转移语义和完美转发

     可见立即数,函数返回的值等都是右值;而非匿名对象(包括变量),函数返回的引用,const对象等都是左值.  从本质上理解,创建和销毁由编译器幕后控制的,程序员只能确保在本行代码有效的,就是右值(包括立即数);而用户...

    深入理解c++右值引用1

    引用类型可被引用的类型注记非常量左值常量左值非常量右值常量右值非常量左值引用// ncLeft1为非常量左值int ncLeft1 = 2;该引用类型本身为常量

    C++11右值引用和转发型引用教程详解

    右值引用采用T&&这一语法形式,比传统的引用T&(如今被称作左值引用 lvalue reference)多一个&。 如果把经由T&&这一语法形式所产生的引用类型都叫做右值引用,那么这种广义的右值引用又可分为以下三种类型: ...

    C++11中的右值引用

    在C++98中有左值和右值的概念,不过这两个概念对于很多程序员并不关心,因为不知道这两个概念照样可以写出好程序。在C++11中对右值的概念进行了增强,我个人理解这部分内容是C++11引入的特性中难以理解的了。该特性...

    C++类中的特殊成员函数示例详解

    C++11前有四个特殊函数,C++11引入移动语义特性,增加了两个参数为右值的特殊函数。这六个函数分别是: 1、默认构造函数 默认构造函数指不需要参数就能初始化的构造函数。包含无参和所有参数有默认值两种类型的构造...

    右值引用、移动语义和完美转发1

    // a是左值 getTemp()的返回值是右值(临时变量)左值引用、右值引用c++98中的引用很常见了,就是给变量取了个别名,在c++11中,因为增加了右值引

Global site tag (gtag.js) - Google Analytics