用友元函数输出学生信息
时间: 2024-09-28 14:05:45 浏览: 19
在C++中,友元函数是一种特殊的成员函数,它能够访问类的私有和保护成员,而不需要通过类的对象直接访问。如果想要用友元函数来输出学生的个人信息,首先你需要定义一个学生类(Student),然后声明这个友元函数作为非成员函数,通常放在类外面。
例如:
```cpp
class Student {
private:
string name;
int age;
public:
// 学生构造函数等
};
// 定义友元函数
void printStudentInfo(Student &s) {
cout << "Name: " << s.name << ", Age: " << s.age << endl;
}
int main() {
Student stu;
stu.name = "Alice";
stu.age = 20;
// 使用友元函数输出学生信息
printStudentInfo(stu);
return 0;
}
```
在这个例子中,`printStudentInfo`函数就是友元函数,可以直接访问`stu`对象的`name`和`age`属性。这样设计可以使代码更简洁,因为不需要创建额外的对象或方法来间接获取学生信息。
相关问题
友元函数输出学生生日
友元函数是在C++中用来访问类的私有成员的一种机制。通过友元函数,我们可以在类外部访问类的私有成员,包括输出学生生日这样的操作。
下面是一个示例代码,展示了如何使用友元函数输出学生的生日:
```cpp
#include <iostream>
using namespace std;
class Student {
private:
string name;
string birthday;
public:
Student(string n, string b) {
name = n;
birthday = b;
}
friend void printBirthday(Student s);
};
void printBirthday(Student s) {
cout << "学生姓名:" << s.name << endl;
cout << "学生生日:" << s.birthday << endl;
}
int main() {
Student stu("张三", "2000-01-01");
printBirthday(stu);
return 0;
}
```
在上面的代码中,我们定义了一个名为`Student`的类,其中包含了私有成员`name`和`birthday`。然后,我们在类中声明了一个友元函数`printBirthday`,用于输出学生的姓名和生日。在`main`函数中,我们创建了一个`Student`对象`stu`,并将其作为参数传递给`printBirthday`函数,从而输出了学生的生日信息。
友元函数学生类
好的,下面是一个示例学生类,其中包含一个友元函数:
```c++
#include <iostream>
#include <string>
using namespace std;
class Student {
private:
string name;
int age;
float score;
public:
Student(string n, int a, float s) : name(n), age(a), score(s) {}
friend void printStudent(Student s);
};
void printStudent(Student s) {
cout << "Name: " << s.name << endl;
cout << "Age: " << s.age << endl;
cout << "Score: " << s.score << endl;
}
int main() {
Student stu("John", 18, 90.5);
printStudent(stu);
return 0;
}
```
在这个示例中,我们定义了一个 `Student` 类,其中包含了三个私有成员:姓名、年龄和分数。我们还定义了一个构造函数来初始化这些成员。
接着,我们声明了一个友元函数 `printStudent`,它可以访问 `Student` 类的私有成员。在这个函数中,我们输出了学生的姓名、年龄和分数。
在 `main` 函数中,我们创建了一个 `Student` 对象,并将其传递给 `printStudent` 函数进行输出。由于 `printStudent` 是 `Student` 的友元函数,它可以访问 `Student` 类的私有成员,因此可以输出学生的全部信息。
输出结果如下:
```
Name: John
Age: 18
Score: 90.5
```
阅读全文