【发布时间】:2021-12-22 10:19:47
【问题描述】:
我试图找出这个程序在 C++ 中的输出。
#include<iostream>
using namespace std;
class MyInt {
int i;
public:
MyInt() {
cout<<1;
i = 0;
}
MyInt(int i) {
cout<<2;
this->i = i;
}
int value(){
return i;
}
};
int main() {
MyInt i;
i = 10;
cout<<i.value();
}
我预计输出是210,但程序的输出是1210。
那么为什么在这种情况下会同时调用默认构造函数和参数化构造函数呢?
【问题讨论】:
-
MyInt i;调用默认构造函数。 -
MyInt i;-- 不确定你期望这样做,因为你正在构造一个MyInt对象,而构造一个对象意味着将调用一个构造函数。也许如果您将变量命名为i以外的其他名称,图片会更清晰一点? -
一句话提示;空格。
标签: c++ class constructor