C++ 传递给方法的引用
为什么会有人创建并调用一个有自己的类作为输入参数的方法?如果我们想分配/更改值,只做ob.a=x不是更简单吗?优势和劣势是什么C++ 传递给方法的引用,c++,class,reference,C++,Class,Reference,为什么会有人创建并调用一个有自己的类作为输入参数的方法?如果我们想分配/更改值,只做ob.a=x不是更简单吗?优势和劣势是什么 class Test { public int a, b; public Test(int i, int j) { a = i; b = j; } public void Change(Test junk) { junk.a = junk.a + junk.b;
class Test
{
public int a, b;
public Test(int i, int j)
{
a = i;
b = j;
}
public void Change(Test junk)
{
junk.a = junk.a + junk.b;
junk.b = -junk.b;
}
}
class Program
{
static void Main(string[] args)
{
Test ob = new Test(15,20);
Console.WriteLine("ob.a and ob.b before call: " + ob.a + " " + ob.b);
ob.Change(ob);
Console.WriteLine("ob.a and ob.b after call: " + ob.a + " " + ob.b);
Console.ReadLine();
}
}
不能通过对象直接访问类的私有和受保护成员。只有公共变量可以通过对象访问
因此,如果您想更改私有/受保护的数据成员,则需要成员函数。如果我将类变量(a,b)设置为私有,则无法运行ob.change。您可以运行ob.change()方法,没有人阻止您这样做,我的意思是,你可以从main调用它,因为它是一个公共成员函数。我认为OP问的是这个问题的相反方向。不是为什么要使用成员方法,而是为什么一个类会有在它自己的类上运行的静态方法。但是他没有在任何地方提到静态,为了回答这个问题,不建议将一个接受类类型的方法设置为静态,因为静态方法不属于对象级别,它属于类。