关于传值传引用,const的使用

本文详细介绍了C++中传值、传引用的选择,以及const的使用,强调了const在保护源数据不变性上的重要性。通过示例分析了传入const引用的必要性,并探讨了const成员函数及其与this指针的关系,指出在构造函数和函数参数中合理使用const可以提高代码的兼容性和可读性。
摘要由CSDN通过智能技术生成

实现Vector 类(四)

这里主要做一些优化

传入参数属性的选择

拿其中的一个函数作为例子

// 函数原型
class Vector
{
    ...
public:
    ...
    Vector operator+(Vector v1);
}
// 函数定义
Vector Vector::operator+(Vector v1)
{
    Vector temp;
    temp.x = v1.x + x;
    temp.y = v1.y + y;
    return temp;
}

在这里,我们传入了一个v1对象
当我这样子调用

Vector v1(2,3);
Vector v2(3,4);
Vector v;
v = v1 + v2;

相当于这样子
v = v1.operator+(v2);
v2作为参数传进函数中
聪明的你们当然知道这是传值引用
所以,v2传入函数时会创建一个临时对象
然后用这个临时对象参与运算
最后返回一个另一个临时对象temp
退出函数时,v2形成的临时对象执行析构函数被销毁
临时对象temp赋值给对象v后被自动销毁

选择:
按值传递,按址传递,按引用传递
按值传递需要创建临时对象
需要消耗额外的计算与存储资源
最好是传入指针或引用
当然在C++中引用是更好的选择

因此我们可以这样修改

// 函数原型
class Vector
{
    ...
在React中,可以使用props来将数据从父组件递给子组件。通常情况下,我们将简单的数据类型(如字符串、数字等)作为props递,但也可以通过props引用类型的数据,比如数组。 通过props递数组时,需要注意一些细节。首先,父组件可以将一个数组作为props的值递给子组件,并在子组件中通过this.props来访问该数组。例如: ```jsx // 父组件 class ParentComponent extends React.Component { render() { const myArray = [1, 2, 3, 4, 5]; return <ChildComponent arrayProp={myArray} />; } } // 子组件 class ChildComponent extends React.Component { render() { const arrayReceived = this.props.arrayProp; // 在这里可以使用接收到的数组进行一些操作 // ... return <div>{arrayReceived}</div>; } } ``` 在上面的例子中,父组件创建了一个名为`myArray`的数组,并将其通过`arrayProp`的props递给子组件`ChildComponent`。在子组件中,可以通过`this.props.arrayProp`来获取父组件递的数组,然后可以在子组件中对该数组进行操作,并进行渲染。 需要注意的是,由于React使用了虚拟DOM的概念,所以在子组件中对通过props递的数组进行修改是不被允许的。这是因为React希望通过props的不可变性来提高性能和可预测性。如果需要在子组件中修改递的数组,可以通过在子组件中复制一份新的数组,然后对新的数组进行修改。 综上所述,通过props可以递数组这样的引用类型数据给子组件,并可以在子组件中使用该数组进行操作和渲染。但在子组件中不应该直接修改通过props递的数组。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值