如何在c ++中访问函数作用域变量?

时间:2018-02-16 07:04:19

标签: c++ scope-resolution

可以使用::运算符在函数内访问全局范围变量。由于全局范围没有名称,因此::的左侧可能为空。我将如何访问函数作用域中定义的变量,该变量稍后在函数本身的块中被覆盖。在下面的代码中,我将如何访问初始化为1的变量?

public int bulletSpeed;
Rigidbody bulletRigidBody;

void Start()
{
    //Get bullet rigidbody
    if (bulletRigidBody == null)
    {
        bulletRigidBody = GetComponent<Rigidbody>();
    }

    bulletRigidBody.velocity = transform.forward * bulletSpeed;
}

private void OnCollisionEnter(Collision collision)
{
    if (collision.collider.tag == "Wall")
    {
        //change forward vector based on reflection against object
        transform.forward = Vector3.Reflect(collision.contacts[0].point, collision.contacts[0].normal);

        //add velocity to bullet based on new forward vector
        bulletRigidBody.velocity = transform.forward * bulletSpeed;
    }

}

1 个答案:

答案 0 :(得分:3)

您可以使用reused访问main内任意位置的全局::reused。但是,无法在声明第三个reused的块内使用第二个reused。该语言没有提供相应的机制。