当对象被分配给C 中的值时会发生什么

What happens when an object is assigned to a value in c++

本文关键字:什么 对象 分配      更新时间:2023-10-16

检查以下代码:

#include<iostream>
using namespace std;
class example
{
    public:
    int number;
    example()
    {
        cout<<"1";
        number = 1;
    }
    example(int value)
    {
        cout<<"2";
        number = value;
    }
    int getNumber()
    {
        cout<<"3";
        return number;
    }
};
int main()
{
    example e;
    e = 10;
    cout<<e.getNumber();
    return 0;
}

上述代码的输出是什么。另外,我想知道当对象直接分配到值时会发生什么。编译器将如何解释它?

首先您输入

example e;

因此,第一个构造函数称为和1打印

example()
{
    cout<<"1";
    number = 1;
}

输出:

1

然后您输入: e=10等于e = example(10);,因此另一个构造函数称为:

example(int value) /// beacause you used example(10)
{
    cout<<"2";
    number = value;
}

,您的输出为:

12

number2最后:

cout<<e.getNumber();

3 is couted but in the other hand value is `10`    

因为number = value您的number10
因此,最终您的输出是:

12310

thanx @storyteller编辑解释

相关文章: