Member 12982200 Ответов: 2

Как присвоить значение указателю, когда это значение возвращается функцией?


// inheritance , polymorphism
#include<iostream>
#include<string>

using namespace std;

class person
{
	public :
		int age;
		string name;
		string get_name()
		{
			cout<<"Please enter the name"<<endl;
			cin>>name;
			return name;
		}
		int get_age()
		{
			cout<<"enter the age"<<endl;
			cin>>age;
			return age;
		}
};

class student : public person
{
  private : 
  int id;
  char section;
  public:
  int get_id(){
  	cout<<"enter the id of the student"<<endl;
  	cin>>id;
  	return id;
  }
  char get_section()
  {
  	cout<<"enter the section"<<endl;
  	cin>>section;
  	return section;
}	
};

int main()
{
int *a;
string n;
student s;
int i;
char sec;
char c;
n=s.get_name();
*a=s.get_age();
cout<<"is this person a student? please enter y or n"<<endl;
cin>>c;
if (c=='y')
{
	i=s.get_id();
	sec=s.get_section();
	cout<<" My name is "<<n<<" my age is "<<*a<<" my id is "<<i<<" my sec is "<<sec;
}
if (c=='n')
{

	cout<<"My name is "<<n<<" my age is "<<*a<<" I am not a student ";
}

}


Что я уже пробовал:

возраст заявлен как *в функцию main. как присвоить ему значение, которое возвращает get_age ().

2 Ответов

Рейтинг:
1

User 59241

Ваш код частично корректен, но в нем отсутствуют важные шаги. В классе студент ценность возраст никогда не заводится.
В конструкторе есть два способа сделать это:
Конструкторы и списки инициализаторов элементов - cppreference.com[^]

или методами get и set:
Назначение методов get и set в C++[^]

Второй подход должен вас вполне устраивать. Просто добавить набор методов класса.


Stefan_Lang

Хорошо подмечено.
Что касается вашего совета: "просто добавьте методы set в свой класс", возможно, вам следует указать, что он также должен их вызывать ;-)

User 59241

Что я искренне надеюсь, что выводится. Код операции ясно показывает, что они знают это, хотя до сих пор они молчали.

Рейтинг:
1

Patrice T

Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Он позволяет вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения, это невероятный инструмент обучения.

Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.