传递给方法的引用
Reference passed to a method
为什么有人会创建并调用一个将自己的类作为输入参数的方法?如果我们想分配/更改值,那么只执行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;
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();
}
}
您不能直接通过对象访问类的私有和受保护成员。只有公共变量才能通过对象访问。
因此,如果您想更改私有/受保护的数据成员,则需要成员函数。
相关文章:
- 在他自己的方法中,有可能将一个对象取消引用到另一个对象吗
- 在 cpp 文件中隐藏采用模板参数引用的方法
- 拥有映射的现代方法,该映射可以指向或引用已在堆栈上分配的不同类型的数据
- 为什么常量方法可以采用非常量引用?
- 没有取消引用/解包对象的标准方法?
- C++方法中的引用变量
- 引用文件的适当方法是什么?
- C++有什么方法可以在既不调用函数模板也不提供其模板参数的情况下引用函数模板?
- 对结构方法的未定义引用
- 通过基类接受方法转发派生 UniquePtr 的右值会移动引用而不是复制
- 使用移动语义:右值引用作为方法参数
- Unity3D 导入 C++ DLL 用于按引用方法传递
- 通过引用方法传递对象
- 无法将从函数返回的向量传递给需要引用方法的函数
- 正在调用指针和引用方法
- 与const引用(方法链)相关联的临时对象的生命周期
- 方法内部的简单c++成员引用(方法解析后的链接器错误)
- 被引用方法的未定义引用
- 无法引用方法
- 我如何在外面引用 C++ 方法