我正在尝试获取类私有成员中变量的输入

I'm trying to get the input for variables in private members of a class

本文关键字:成员 变量 输入 获取      更新时间:2023-10-16

这是我的代码

#include <iostream>
#include <string>
using namespace std;
class Hamoud{
private: 
char name[50];
int yearbirthday;
public: 
float tall;
int age;
void Getnameandyear(string name)
{
std::array<char, 50> ;
cout<<"enter your name: ";
getline(nama);
int year;
year = yearbirthday;
cout<<"enter your name: ";
getchar(name);
cout<<"Enter your year of birth";
cin>>year;
}
void display()
{
cout<<"your name is: "<<name;
cout<<"your year of birth is : "<<year;
}
};
int main ()
{
Hamoud info;
cout<<"enter your tall ";
cin>>info.tall;
cout<<"your tall is : "<<info.tall;
cout<<"enter your age: ";
cin>>info.age;
cout<<"your age is: "<<info.age;
info.Getnameandyear();
info.display();
}

但是我在函数 getnameandyear 中也遇到了错误,在显示函数中也是如此...... 我知道要访问类的私有成员,我们必须在公共中创建一个函数,该函数将帮助我们间接访问...... 但是,我卡在最后几步。 知道如何解决这个问题的任何想法?

你可能想要这样的东西:

#include <iostream>
#include <string>
using namespace std;
class Hamoud {
private:
string name;
int yearbirthday;
public:
float tall;
int age;
void Getnameandyear()
{
// no need for std::array<char, 50> or whatever here anyway
cout << "enter your name: ";
cin.ignore();   // this clears the input buffer. The exact reason why
// we need this is beyond your scope for the moment
getline(cin, name);
cout << "Enter your year of birth: ";
cin >> yearbirthday;
}
void display()
{
cout << "your name is: " << name << "n";
cout << "your year of birth is: " << yearbirthday << "n";
}
};
int main()
{
Hamoud info;
cout << "enter your tall ";
cin >> info.tall;
cout << "your tall is: " << info.tall << "n";
cout << "enter your age: ";
cin >> info.age;
cout << "your age is: " << info.age << "n";
info.Getnameandyear();
info.display();
}

但无论如何,我认为你应该开始阅读好的初学者C++教科书。

关于getline之前的cin.ignore();:确切的原因目前有点超出您的范围,但您可以在这篇SO文章中找到有关此问题的详细信息。