c 语言 const 引用,关于C中的返回const引用

博客探讨了在C++中使用const引用作为返回值时遇到的问题。作者通过一个示例代码展示了在GnuC和Visual Studio两个编译器上运行的不同结果。尽管GnuC给出了正确答案,但Visual Studio出现了错误。这引发了关于const引用在不同编译器中行为一致性的讨论,并提示读者理解const引用在C++中的作用和潜在的编译器实现差异。
摘要由CSDN通过智能技术生成

我很困惑在C中返回const引用.所以我写下面的代码块并在gnu c和visual studio上测试.并找到不同的答案.任何人都可以使用C中的返回const引用来说明好处,并且原因导致不同编译器上的行为不同.

#include

using namespace std;

class A

{

public:

A(int num1, int num2):m_num1(num1), m_num2(num2)

{

cout<

}

const A& operator * (const A & rhs) const

{

return A(this->m_num1 * rhs.m_num1, this->m_num2*rhs.m_num1);

}

A(const A& rhs)

{

this->m_num1 = rhs.m_num1;

this->m_num2 = rhs.m_num2;

cout<

}

const A& operator = (const A& rhs)

{

cout<

return *this;

}

void Display();

private:

int m_num1;

int m_num2;

};

void A::Display()

{

cout<

}

int main()

{

A a1(2,3), a2(3,4);

A a3 = a1 * a2;

a3.Display();

return 0;

}

在Gnu C上,它确实报告了正确的答案.但在视觉研究编译器上失败了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值