c++编程 定义一个学生类Student(属性有姓名name和学号number),打印输出某个学生的学生信息,要求用一个友元函数Show( )函数实现。
时间: 2023-09-07 15:04:59 浏览: 143
### 回答1:
以下是一个示例代码:
```c++
#include <iostream>
#include <string>
class Student {
private:
std::string name;
int number;
public:
Student(std::string name, int number) : name(name), number(number) {}
friend void Show(Student& student);
};
void Show(Student& student) {
std::cout << "Name: " << student.name << std::endl;
std::cout << "Number: " << student.number << std::endl;
}
int main() {
Student s("Tom", 12345);
Show(s);
return 0;
}
```
在上面的代码中,我们定义了一个 `Student` 类,它有两个私有属性,分别是姓名和学号。我们使用构造函数来初始化这两个属性。然后,我们定义了一个友元函数 `Show`,它可以访问 `Student` 类的私有属性。在 `main` 函数中,我们创建了一个 `Student` 对象 `s`,并调用 `Show` 函数来打印输出学生信息。
### 回答2:
学生类的定义如下:
```cpp
#include <iostream>
using namespace std;
// 学生类的定义
class Student{
private:
string name;
string number;
public:
// 构造函数
Student(string name, string number){
this->name = name;
this->number = number;
}
// 友元函数的声明
friend void Show(Student student);
};
// 友元函数的实现
void Show(Student student){
cout << "学生姓名:" << student.name << endl;
cout << "学号:" << student.number << endl;
}
int main(){
// 创建一个学生对象
Student student("张三", "1001");
// 调用友元函数打印输出学生信息
Show(student);
return 0;
}
```
以上代码定义了一个学生类`Student`,包含了姓名和学号两个私有属性,通过构造函数进行初始化。然后定义了一个友元函数`Show`,通过引用传递一个`Student`对象,打印输出该学生的姓名和学号信息。在`main`函数中,创建一个学生对象,并调用友元函数`Show`进行输出学生信息。运行程序,即可打印输出学生的信息。
### 回答3:
学生类Student可以定义如下:
```cpp
#include<iostream>
using namespace std;
class Student {
private:
string name; // 学生姓名
int number; // 学生学号
public:
Student(string n, int num) : name(n), number(num) {} // 构造函数
friend void Show(Student s); // 声明友元函数
};
void Show(Student s) {
cout << "学生姓名:" << s.name << endl;
cout << "学生学号:" << s.number << endl;
}
int main() {
Student stu("张三", 123456); // 创建一个学生对象
Show(stu); // 调用友元函数显示学生信息
return 0;
}
```
上述代码中,我们首先定义了一个学生类Student,其中包含了私有属性name和number,以及一个公有的构造函数,用于初始化学生对象的姓名和学号。在类的外部,我们通过friend关键字声明了Show函数为Student类的友元函数,这样Show函数就能够访问Student类的私有成员。
在main函数中,我们创建了一个学生对象stu,并传入了姓名"张三"和学号123456进行初始化。然后调用Show函数,将stu作为参数传递给该函数,显示学生的姓名和学号信息。最终输出结果如下:
```
学生姓名:张三
学生学号:123456
```
阅读全文