Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c++;不带结构引用的函数调用 我是C++新手,但我有很好的编程背景,我一直在寻找函数调用,它不需要引用对象到结构或类。我要寻找的最好的参考可能是unity的任何类,例如Vector2.Distance可以使用,它返回另一个Vector2,但Vector2就是这个类 #包括 #包括 结构向量{ 浮动x,y; //直到最近才发现你可以这么做 //而不是向量(){x=0.0;y=0.0}等。 向量():x(0.0),y(0.0){} 向量(float x,float y):x(x),y(y){ 矢量相加(矢量a、矢量b){ 返回向量(this->x+b.x,this->y+b.y); } }; int main(){ 向量a=向量(2,3); 向量b=向量(4,4); 向量c=向量。加上(a,b); printf(“%f,%f”,c.x,c.y”); 返回0; } //此函数的预期输出:6,7_C++ - Fatal编程技术网

c++;不带结构引用的函数调用 我是C++新手,但我有很好的编程背景,我一直在寻找函数调用,它不需要引用对象到结构或类。我要寻找的最好的参考可能是unity的任何类,例如Vector2.Distance可以使用,它返回另一个Vector2,但Vector2就是这个类 #包括 #包括 结构向量{ 浮动x,y; //直到最近才发现你可以这么做 //而不是向量(){x=0.0;y=0.0}等。 向量():x(0.0),y(0.0){} 向量(float x,float y):x(x),y(y){ 矢量相加(矢量a、矢量b){ 返回向量(this->x+b.x,this->y+b.y); } }; int main(){ 向量a=向量(2,3); 向量b=向量(4,4); 向量c=向量。加上(a,b); printf(“%f,%f”,c.x,c.y”); 返回0; } //此函数的预期输出:6,7

c++;不带结构引用的函数调用 我是C++新手,但我有很好的编程背景,我一直在寻找函数调用,它不需要引用对象到结构或类。我要寻找的最好的参考可能是unity的任何类,例如Vector2.Distance可以使用,它返回另一个Vector2,但Vector2就是这个类 #包括 #包括 结构向量{ 浮动x,y; //直到最近才发现你可以这么做 //而不是向量(){x=0.0;y=0.0}等。 向量():x(0.0),y(0.0){} 向量(float x,float y):x(x),y(y){ 矢量相加(矢量a、矢量b){ 返回向量(this->x+b.x,this->y+b.y); } }; int main(){ 向量a=向量(2,3); 向量b=向量(4,4); 向量c=向量。加上(a,b); printf(“%f,%f”,c.x,c.y”); 返回0; } //此函数的预期输出:6,7,c++,C++,上面的代码是我想要的一个例子,所以发生的事情背后的推理是多余的,我知道有一个向量类,我确信有一种更简单的方法来编写这段代码,但这是我想要的根功能 这在这种语言中可能吗 intmain(){ 向量a=向量(2,3); 向量b=向量(4,4); 这就是:向量c=a.add(a,b); 这个!起作用了:向量c=vector.add(a,b); printf(“%f,%f”,c.x,c.y”); 返回0; } 我知道这是可行的,但我所要做的就是不需要在A.add()中引用; 我尝试过静态函数,研究了s

上面的代码是我想要的一个例子,所以发生的事情背后的推理是多余的,我知道有一个向量类,我确信有一种更简单的方法来编写这段代码,但这是我想要的根功能

这在这种语言中可能吗

intmain(){
向量a=向量(2,3);
向量b=向量(4,4);
这就是:向量c=a.add(a,b);
这个!起作用了:向量c=vector.add(a,b);
printf(“%f,%f”,c.x,c.y”);
返回0;
}
我知道这是可行的,但我所要做的就是不需要在A.add()中引用; 我尝试过静态函数,研究了std::functional,操作重载,但我可能误解了某些内容,并找到了解决方案 提前谢谢

您可以在类中定义静态函数

#include <stdio.h>
#include <stdlib.h>

struct vector {
    float x, y;

    // only recently figured out you could do this
    // instead of vector() {x = 0.0; y = 0.0} etc.
    vector() : x(0.0), y(0.0) {}
    vector(float _x, float _y) : x(_x), y(_y) {}

    // add "static"
    static vector add(vector a, vector b) {
        return vector(a.x + b.x, a.y + b.y); // use correct object
    }
};

int main() {
    vector a = vector(2, 3);
    vector b = vector(4, 4);

    vector c = vector::add(a, b); // use :: instead of .

    printf("%f, %f", c.x, c.y);
    return 0;
}
#包括
#包括
结构向量{
浮动x,y;
//直到最近才发现你可以这么做
//而不是向量(){x=0.0;y=0.0}等。
向量():x(0.0),y(0.0){}
向量(float x,float y):x(x),y(y){
//添加“静态”
静态矢量相加(矢量a、矢量b){
返回向量(a.x+b.x,a.y+b.y);//使用正确的对象
}
};
int main(){
向量a=向量(2,3);
向量b=向量(4,4);
向量c=向量::添加(a,b);//使用::代替。
printf(“%f,%f”,c.x,c.y”);
返回0;
}

<代码> >代码A+B<代码>使用<代码>操作符+ < /代码>?你所描述的被称为静态函数,但是C++中,你不会编写这样的代码。您可以定义运算符,也可以在类外部定义函数。静态成员函数很少是C++中正确的工具(它们与模板元编程结合起来是非常有用的,这是一个完全不同的蠕虫)。@ TKAUL,因为这个示例代码不是我想要的,只是我所寻找的根函数。我希望生成的实际代码是一个颜色转换类,但我的颜色应用程序具有专有用途。这将转换颜色rgb->bin和bin->rgb@KonradRudolph嗯,如果我理解正确,静态函数在这种情况下可以工作,我的用例没有使用this命令,但是当我试图调用它时,它仍然不工作,因为你不能通过结构引用调用函数,或者你在寻找
vector add(const vector&b)const{return vector(x+b.x,y+b.y);}
?像
a.add(b);
一样调用,但您可能不应该(在本例中)…10年的编程。我不敢相信我不认为C++使用::除了库之外的任何东西。谢谢你的快速回复。@ OWNETECHORDER这叫做分辨率操作符,基本上我们在范围内访问了<代码> Addio>代码>。