Вот мой код, я пытался выделить память для объекта, задав размер от пользователя. Я не знаю, где я ошибаюсь. Ошибка, которую компилятор мне дает, - это "void value not ignored as it ought to be"
. Пожалуйста, помогите мне. Заранее спасибо.
#include <iostream>
using namespace std;
class test
{
char name[20];
char address[30];
char desig[20];
public:
void getData();
void display();
~test()
{
cout << "Destructor is invoked";
}
};
void test::getData()
{
cout << "Enter your name" << endl;
cin >> name;
cout << "Enter address" << endl;
cin >> address;
cout << "Enter designation" << endl;
cin >> desig;
}
void test::display()
{
cout << "name" << endl;
cout << name << endl;
cout << "address" << endl;
cout << address;
cout << "Enter designation" << endl;
cout << desig;
}
int main()
{
int s;
cout << "Enter the size of an array" << endl;
cin >> s;
test* p1 = new test[s];
for (int i = 0; i < s; i++)
{
*p1[i].getData();
}
for (int i = 0; i < s; i++)
{
*p1[i].display();
}
delete[] p1;
return 0;
}
Вам нужно изменить:
*p1[i]
Для того, чтобы:
p1[i]
Вот:
*p1[i].display();
Вы вызываете display
функции-члена, которое возвращает void
и пытается разыменовать это.