#include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> using namespace std; class a{ public: int name; int number; void set_name(int ne) { name=ne; } void set_number(int nr) { number=nr; } void show_name() { cout << name; } void show_number() { cout << number; } }; int main() { a a1; a*p=new a; int x; cin>>x; p->set_number(x); p->show_name(); };
时间: 2024-01-16 07:02:01 浏览: 163
在你的修改中,你使用 new 运算符为类 a 的指针 p 分配了内存空间,但是你没有为其设置 name 值,因此在调用 show_name 函数时会输出一个未定义的值。你需要将指针 p 的 name 值设置为一个已知的值,或者直接使用对象 a1 进行操作。修改后的代码如下:
```
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
class a{
public:
int name;
int number;
void set_name(int ne) {
name = ne;
}
void set_number(int nr) {
number = nr;
}
void show_name() {
cout << name;
}
void show_number() {
cout << number;
}
};
int main() {
a a1;
a* p = new a;
int x;
cin >> x;
p->set_number(x);
p->set_name(10); // 将指针 p 的 name 值设置为 10
p->show_name();
return 0;
}
```
这个程序的功能为:从标准输入中读取一个整数,将其设置为指针 p 的 number 值,将指针 p 的 name 值设置为 10,然后输出指针 p 的 name 值。
阅读全文