#include <iostream> #include <conioh> class Csample { int i; public: Csample() {cout <<"constructor1" <<endl; } Csample(int val) {cout <<"Constructor2"<<endl;i=val;} void Display(){cout<<"i="<<i<<endl;} ~Csample(){cout<<"Destructor"<<endl;} }; void main() { Csample a,b(10); b.Display(); } 运行结果
时间: 2024-01-16 08:04:39 浏览: 80
这段代码的运行结果会输出以下内容:
```
constructor1
Constructor2
i=10
Destructor
Destructor
```
这是因为程序中定义了两个构造函数和一个析构函数,以及两个 `Csample` 对象 `a` 和 `b`。在程序开始时,先构造了一个无参构造函数对象 `a`,输出了 `constructor1`;然后构造了一个带参构造函数对象 `b`,输出了 `Constructor2`,并且将 `b` 的成员变量 `i` 初始化为 `10`;接着调用了 `b.Display()`,输出了 `i=10`;最后在程序结束时,先销毁了 `b`,输出了 `Destructor`,然后销毁了 `a`,同样输出了 `Destructor`。
相关问题
程序填空输出指定结果 #include <iostream> using namespace std; class A { public: A() { } // 在此处补充你的代码 }; class B:public A { public: ~B() { cout << "destructor B" << endl; } }; int main() { A * pa; pa = new B; delete pa; return 0; } 输入 无 输出 destructor B destructor A 输入样例 1 None 输出样例 1 destructor B destructor A
#include <iostream>
using namespace std;
class A {
public:
A() {
cout << "constructor A" << endl;
}
virtual ~A() {
cout << "destructor A" << endl;
}
};
class B : public A {
public:
B() {
cout << "constructor B" << endl;
}
~B() {
cout << "destructor B" << endl;
}
};
int main() {
A * pa;
pa = new B;
delete pa;
return 0;
}
//输出结果:destructor B destructor A
#include using namespace std; class CSample { int x; public: CSample() { cout<<"C1"<<endl;} CSample(int n ) {x = n;cout<<"C2,x="<<x }; int main() { CSample array1[2]; CSample array2[2] = {6,8}; return 0; }的结果
这段代码存在一些问题,无法通过编译。可能的问题包括:
1. 缺少头文件,应该添加 `#include <iostream>`。
2. `class CSample` 中的 `main` 函数应该是一个静态成员函数或者不应该在类中定义。
3. `CSample(int n )` 的构造函数缺少分号,应该改为 `CSample(int n ) {x = n;cout<<"C2,x="<<x<<endl;}`。
4. `CSample array1[2];` 没有为数组中的元素提供构造参数,因此会调用默认构造函数 `CSample()`。但是默认构造函数中只输出了一条信息,应该添加换行符使输出更加清晰。正确的代码应该是 `CSample() { cout<<"C1"<<endl; }`。
因此,修正后的代码如下:
```
#include <iostream>
using namespace std;
class CSample {
int x;
public:
CSample() { cout<<"C1"<<endl; }
CSample(int n ) { x = n; cout<<"C2,x="<<x<<endl; }
};
int main() {
CSample array1[2];
CSample array2[2] = {6, 8};
return 0;
}
```
运行结果如下:
```
C1
C1
C2,x=6
C2,x=8
```
阅读全文