class Myclass public : Myclass (){ cout <<' M ';} Myclass ( char n )( cout << n ;}~ Myclass (){ cout <<' Y '} void main ) Myclass p1,*p2;p2= new Myclass (' X '); delete p2;
时间: 2023-12-06 21:44:54 浏览: 37
这段代码有一些语法错误,我将其修正如下:
```cpp
#include<iostream>
using namespace std;
class Myclass {
public:
Myclass() {
cout << 'M';
}
Myclass(char n) {
cout << n;
}
~Myclass() {
cout << 'Y';
}
};
int main() {
Myclass p1, *p2;
p2 = new Myclass('X');
delete p2;
return 0;
}
```
这段代码定义了一个名为 `Myclass` 的类,其中包含了一个无参构造函数、一个带参构造函数和一个析构函数。在 `main` 函数中,首先创建了一个 `Myclass` 类的对象 `p1`,此时会执行无参构造函数,输出字符 `'M'`。然后通过 `new` 运算符动态分配了一个 `Myclass` 类的对象,并将指向该对象的指针赋值给了 `p2`。在这个过程中,由于使用了带参构造函数,所以会输出字符 `'X'`。接着通过 `delete` 运算符释放了 `p2` 指向的对象,在释放对象时会执行析构函数,输出字符 `'Y'`。最终程序结束,运行结果为 `"MXY"`。
相关问题
#include <iostream> using namespace std; class MyClass { public: MyClass(); MyClass(int): MyClass(); void Display( ); Protected: int number; }; MyClass::MyClass() { cout<<"Constructing normally\n"; } Myclass::MyClass(int m) { nunber = m; cout<<"Constructing with a number : " << nunber << endl; } void MyClass::Display() { cout<<"Display a number: " << number << endl; } MyClass:: MyClass() { cout <<"Destructing\n"; } int main() { MyClass obj1; MyClass obj2(20); obj1.Display(); obj2.Display(); }
这段代码有一些语法错误,我稍作修改:
```
#include <iostream>
using namespace std;
class MyClass {
public:
MyClass();
MyClass(int);
void Display();
protected:
int number;
};
MyClass::MyClass() {
cout << "Constructing normally\n";
}
MyClass::MyClass(int m) {
number = m;
cout << "Constructing with a number: " << number << endl;
}
void MyClass::Display() {
cout << "Display a number: " << number << endl;
}
MyClass:: ~MyClass() {
cout << "Destructing\n";
}
int main() {
MyClass obj1;
MyClass obj2(20);
obj1.Display();
obj2.Display();
return 0;
}
```
这是一个简单的面向对象编程例子,其中定义了一个 `MyClass` 类,包含了一个默认构造函数、一个带参数的构造函数、一个成员变量 `number` 和一个成员函数 `Display()`。在 `main()` 函数中,分别创建了两个对象 `obj1` 和 `obj2`,并调用它们的 `Display()` 函数。同时,在程序结束时,会自动调用析构函数 `~MyClass()`。
输出如下:
```
Constructing normally
Constructing with a number: 20
Display a number: 0
Display a number: 20
Destructing
Destructing
```
可以看出,构造函数在对象创建时被调用,析构函数在对象销毁时被调用,而 `Display()` 函数则用于显示成员变量的值。
#include <iostream> using namespace std; class MyClass { public: MyClass() { cout << 'A'; } MyClass(char c) { cout << c; } ~MyClass() { cout << 'B'; } }; int 阅读下面程序main() { MyClass p1, * p2; p2 = new MyClass('X'); delete p2; return 0; }
这段程序存在一些语法错误,应该是这样的:
```
#include <iostream>
using namespace std;
class MyClass {
public:
MyClass() { cout << "A"; }
MyClass(char c) { cout << c; }
~MyClass() { cout << "B"; }
};
int main() {
MyClass p1, * p2;
p2 = new MyClass('X');
delete p2;
return 0;
}
```
这段程序定义了一个名为`MyClass`的类,该类有两个构造函数和一个析构函数。在`main`函数中,先定义了一个`MyClass`类型的对象`p1`,然后使用`new`关键字动态分配了一个`MyClass`类型的对象`p2`,并将其赋值给指针变量`p2`。最后,使用`delete`关键字释放了`p2`指向的内存空间。程序的输出结果为`AXB`,其中`A`表示`MyClass()`构造函数的输出,`X`表示`MyClass(char c)`构造函数的输出,`B`表示`~MyClass()`析构函数的输出。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)