C++ 引用 “&”

1.引用 “&”

a.类的应用必须在构造函数中初始化
b.其他在声明的时候初始化;
d.应用必须初始化,可以反复赋值;

2.demo

#include <iostream>
class myclass{
public:
    myclass(int a):coint(0),myint(a)
    {}
    int num ;
    int data;
    int *p;
    const int coint;
    int &myint;
    static int shu;
    static void go()
    {
    }
    ~myclass(){}
private:
};
int myclass::shu=0;//初始化;
void main()
{
    int a=0;
    myclass class1(a);
    int data=0;
    int data1=10;
    int &da=data;
    std::cout<<da<<std::endl;
    da=data1;//反复赋值;
    std::cout<<da<<std::endl;
    std::cin.get();
}

输出:

0
10
C++ 中,`&amp;&amp;` 运算符有两个主要用途: ### 1. **逻辑运算符** 当 `&amp;&amp;` 被用于布尔表达式中时,它表示**逻辑**操作。只有当两边的操作数都为真 (`true`) 时,结果才返回真;只要其中有一个条件为假 (`false`),则整个表达式的值就是假。 - 示例代码: ```cpp bool a = true; bool b = false; if (a &amp;&amp; b) { std::cout &lt;&lt; &quot;Both are true&quot; &lt;&lt; std::endl; } else { std::cout &lt;&lt; &quot;At least one is false&quot; &lt;&lt; std::endl; // 输出此行 } ``` --- ### 2. **右值引用(Rvalue Reference)** 在 C++11 及更高版本中,`&amp;&amp;` 表示一种新的引用类型&mdash;&mdash;**右值引用**。右值引用允许我们绑定到临时对象,并支持移动语义(Move Semantics),这是现代 C++ 的重要特性之一。 - 移动语义的作用在于避免不必要的深拷贝,提高程序性能。 - 示例代码: ```cpp #include &lt;iostream&gt; #include &lt;vector&gt; void moveVector(std::vector&lt;int&gt; &amp;&amp;vec) { // vec 是一个右值引用 std::cout &lt;&lt; &quot;Moved vector has size: &quot; &lt;&lt; vec.size() &lt;&lt; std::endl; } int main() { std::vector&lt;int&gt; tempVec{1, 2, 3}; moveVector(std::move(tempVec)); // 将tempVec作为右值传递 return 0; } ``` 上述例子展示了如何通过右值引用来实现资源转移而不是复制。 --- #### 总结 - 如果你在上下文中看到的是类似 `if(a &amp;&amp; b)` 的形式,则它是逻辑&ldquo;&rdquo;; - 若涉及像函数形参列表里的 `T&amp;&amp; t` ,那便是代表了右值引用的概念。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值