C++编程基础二 28-复习2
1 // C++函数和类 28-复习2.cpp: 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include<iostream> 6 #include<string> 7 8 using namespace std; 9 10 //定义类,class关键字 类名 11 //类的数据成员(私有private),类的成员方法(公有public). 12 //私有成员:只能在类的内部进行访问。公有成员:既可以在类的内部进行访问,也可以在类的外部通过对象进行访问。 13 14 class Student 15 { 16 //作用域为类的常量,需要加上static关键字,因为需要给常量分配内存空间。 17 static const int PassingScore = 500; 18 //友元函数,写在类的外部,但是可以通过类的对象去访问类的私有成员。它不是类的成员方法。 19 //使用friend 关键字 20 friend void pass(Student &s); 21 private: 22 string name_; 23 int age_; 24 int score_; 25 public: 26 //构造函数和析构函数 27 Student(); 28 Student(string name, int age, int score); 29 ~Student(); 30 31 //成员方法: 32 void print(); 33 bool max(Student &s); 34 }; 35 36 //类方法的定义 37 Student::Student() 38 { 39 name_ = ""; 40 age_ = 0; 41 score_ = 0; 42 } 43 44 Student::Student(string name, int age, int score) 45 { 46 name_ = name; 47 age_ = age; 48 score_ = score; 49 } 50 51 Student::~Student() 52 { 53 54 } 55 56 void Student::print() 57 { 58 cout << "该学生的姓名:" << name_ << ",该学生的年龄: " << age_ << ",该学生的年龄: " << "该学生的分数: " << score_ << endl; 59 } 60 61 //this指针 62 bool Student::max(Student & s) 63 { 64 return this->score_ >= s.score_ ? true : false; 65 } 66 67 void sort(Student stuss[], int size) 68 { 69 Student temp; 70 for (int i = 0; i < size - 1; i++) 71 { 72 for (int j = i + 1; j < size; j++) 73 { 74 if (stuss[i].max(stuss[j]) == false) 75 { 76 temp = stuss[i]; 77 stuss[i] = stuss[j]; 78 stuss[j] = temp; 79 } 80 } 81 } 82 } 83 84 void pass(Student &s) 85 { 86 if (s.score_ >= s.PassingScore) 87 { 88 cout << s.name_<< "通过了该次考试!" << endl; 89 } 90 else 91 { 92 cout << s.name_<< "没有通过该次考试!" << endl; 93 } 94 } 95 int main() 96 { 97 Student stu1("uimodel", 10, 550); 98 Student stu2("Lebin", 12, 520); 99 100 stu1.print(); 101 bool res = stu2.max(stu1); 102 if (res == true) 103 { 104 cout << "uimodel的分数比Lebin高" << endl; 105 } 106 else 107 { 108 cout << "Lebin的分数比uimodel高" << endl; 109 } 110 111 const int size = 3; 112 Student stuss[size]; 113 stuss[0] = Student("Tom", 13, 480); 114 stuss[1] = Student("Bobo", 20, 460); 115 stuss[2] = Student("James", 15, 510); 116 117 sort(stuss, size); 118 for (int i = 0; i < size; i++) 119 { 120 stuss[i].print(); 121 pass(stuss[i]); 122 } 123 124 pass(stu2); 125 return 0; 126 }