gpt4 book ai didi

c++ - 用 C++ 编写方法/函数的四种相同方法?

转载 作者:行者123 更新时间:2023-11-28 07:43:01 25 4
gpt4 key购买 nike

今天在学校我们学习了用 C++ 编写方法/函数的四种方法,但我不确定我是否理解每种方法的概念以及它们之间的区别。他们都做同样的事情吗?第一段代码是类声明,第二段代码是类外实现:

一)

1) Vector Addition(Vector a);

2) Vector Vector::Addition(Vector a)
{
Vector temp = *this;
temp.x+=a.x;
temp.y+=a.y;
return temp;
}

二)

1)Vector ConcreteInstanceAddition(Vector a, Vector b);

2) Vector Vector::ConcreteInstanceAddition(Vector a, Vector b)
{
Vector temp=*this;
temp.x=a.x+b.x;
temp.y=a.y+b.y;
return temp;
}

c)

1) friend Vector NonConcreteInstanceAddition(Vector a, Vector b);

2) Vector NonConcreteInstanceAddition(Vector a, Vector b)
{
Vector temp(0,0);
temp.x=a.x+b.x;
temp.y=a.y+b.y;
return temp;
}

d)

1) static Vector NonConcreteInstanceAdditionStatic(Vector a, Vector b);

2) Vector Vector::NonConcreteInstanceAdditionStatic(Vector a, Vector b)
{
Vector temp(0,0);
temp.x=a.x+b.x;
temp.y=a.y+b.y;
return temp;
}

这是主函数中的实现:

Vector a(0,0),b(0,0),c(0,0);

c=a.Addition(b);
//or
c.ConcreteInstanceAddition(a,b);
//or
c=NonConcreteInstanceAddition(a,b);
//or
c=Vector::NonConcreteInstanceAdditionStatic(a,b);

最佳答案

你还忘了一些:
(独立,按参数返回)

void Addition (const Vector& a, const Vector& b, Vector & result)
{
result.x = a.x + b.x;
result.y = a.y + b.y;
return;
}

main 函数中:

Addition(a, b, c);

还有使用 const 和按引用传递的变体。

答案:
a) 成员(member)功能;可以在没有 this-> 的情况下使用类变量。
修改“托管”实例的成员变量。

b) 成员函数;不修改实例变量。

c) 具有访问类中方法和变量权限的独立函数。

d) 静态成员函数。可以在没有对象实例的情况下访问,但不能访问任何类变量。 (类变量需要一个实例。)

编辑 1:您还可以通过实现 operator+=()operator+() 添加另外两个。

编辑2:静态成员函数的使用

c = Vector::NonConcreteInstanceAdditionStatic(a,b);

静态成员函数就像使用一个独立的函数,除了它在一个类中并且必须使用作用域解析操作符:: 来访问。

关于c++ - 用 C++ 编写方法/函数的四种相同方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15463936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com