如果C ++构造函数不返回任何内容,如何在表达式中使用它?

火影忍者798
#include <bits/stdc++.h>
using namespace std;
class vec{
public:
    int x;
    int y;
    vec(int a, int b)
    {
        x = a; y = b;
    }
    vec operator+(vec that)
    {
        vec ans(0, 0);
        ans.x = this->x + that.x;
        ans.y = this->y + that.y;
        return ans;
    }
};
int main()
{
    vec a(0, 1);
    a = a + vec(2, 3); // how does this line work
    printf("%d %d\n", a.x, a.y);
    return 0;
}

每个人都说构造函数不返回任何东西。看起来它正在返回一个对象。我尝试查找临时或未命名的对象,但找不到任何特定于此类表达式的东西。

vvg

构造函数是一个特殊的函数,用于初始化内存中的对象。该对象可能在堆栈或堆上。调用构造函数将初始化内存。请注意,构造函数是c ++语法糖。

vec x(0, 1);                 // creates the object named x of type vec on the stack
vec *px = new vec(2, 3);     // creates the object pointed by px on the heap

x = x + vec(2, 3);           // vec(2, 3) creates a temporary object on stack 
                             // and initializes it with the parameters. 
                             // The overloaded operator+ on the object x is called, 
                             // passing the temporary object as the formal parameter
                             // 'that' of operator+ and it returns a temporary object
                             // on the stack that is copied back into the variable x
                             // as a result of the = assignment operation

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将构造函数表达式放入数组中并在C#中使用它们?

正则表达式模式以及如何在C ++中使用它

如果{{}}表达式在ng-show中不返回任何内容,请显示div。角度的

C ++在构造函数中使用表达式初始化引用

如何在 C# 中使用正则表达式匹配汉字而不匹配日语假名?

正则表达式匹配(如果不...返回不...)

如何在Python中将正则表达式匹配到特定字符,如果不匹配则返回None?

StreamReader 在 WriteLine 函数上显示内容,但如果在变量中使用它则返回空

如何在C#中使用正则表达式构造一个简单的程序来检查输入是否部分匹配

在C中使用python中的正则表达式获取函数内容和函数名称

如果javascript中的函数不返回任何内容,为什么?

如何在C ++中使用正则表达式处理中文标点符号

如何在C ++中的正则表达式中使用变量?

如何在C ++ 20'requires'表达式中使用未指定的类型?

如何在表达式树C#中使用隐式转换?

如何在C#.net中使用Linq表达式或AsEnumerable转换Foreach循环?

如何在C#中使用正则表达式匹配多行

如何在C#/ .NET中使用LINQ表达式树调用lambda

如何在C#.net中使用正则表达式替换组值

如何在C ++中使用正则表达式标记化来捕获重复模式

如何在Lambda表达式C ++中使用goto语句

如何在 C# 中使用正则表达式解析重复的名称-值对

如何在 C/Where 中使用正则表达式来查找文件?

如何在C ++中使用正则表达式匹配以下坐标模式?

如何在 C# 中使用正则表达式进行复杂的替换?

如何在C#中使用Lambda表达式进行嵌套查询

如何在表达式树C#中使用运行时生成的类型

如何在C#中使用Lambda表达式处理矩阵LinkedList <Object>?

如何在C ++中的开关中使用布尔表达式