c++ - 我试图显示对象数组,但它给出了错误的输出
问题描述
我正在尝试创建对象数组并显示它但由于某种原因它给出了错误的输出我认为我使用新运算符的方式错误但我不确定出了什么问题
#include<bits/stdc++.h>
using namespace std;
class X {
string s;
int b;
public:
void set(string s,int b ) {
this->s = s;
this->b = b;
}
void display() {
cout << this->s << ' ' << this->b << '\n';
}
};
int main()
{
int t;
cin >> t;
for (int i = 0; i < t; i++) {
int n;
cin >> n;
X* a = new X[n];
for (int j = 0; j < n; j++) {
string s; int b;
cin >> s >> b;
a[i].set(s, b);
}
for (int i = 0; i < n; i++) {
a[i].display();
}
}
}
输入:1 3 abhi 1 omkar 2 ritesh 3
输出:ritesh 3 0 0
解决方案
您必须实例化对象数组中的每个对象。并尝试使用getline
函数来获取字符串的输入。
#include<bits/stdc++.h>
using namespace std;
class X {
string s;
int b;
public:
void set(string s,int b ) {
this->s = s;
this->b = b;
}
void display() {
cout << this->s << ' ' << this->b << '\n';
}
};
int main()
{
int t;
cin >> t;
for (int i = 0; i < t; i++) {
int n;
cin >> n;
X *a[n];
for (int j = 0; j < n; j++) {
a[j] = new X;
string s; int b;
cin >> s >> b;
a[j]->set(s, b);
}
for (int i = 0; i < n; i++) {
a[i]->display();
}
}
}
希望这可能会有所帮助:)
推荐阅读
- redirect - 我的 IIS 重定向规则无法通过 web.config 工作
- python - 训练 rgb 图像数据集时,模型未正确训练精度保持不变
- c - 在 C 中不使用 openSSL 进行类似于 BN_hex2bn + BN_bn2bin 的转换
- presto - 如何在 Presto DB 中使用范围
- kotlin - 应该使用 CoroutineScope 的扩展函数或挂起函数
- python - Flask App-Builder和多对多关系?
- ios - 使用自定义 collectionView 布局更改单元格大小时如何使用 ScrollToItem(at:)
- java - Mockito 测试不调用 verify() 方法
- linux - 缺少目标文件操作数 Linux
- machine-learning - 如何将时空数据传递给sklearn模型?