c++面向对象三大特性:封装、继承、多态;
封装的意义:
#include<iostream>
using namespace std;
class Student {
public:
string name;
int age;
double score;
void show() {
cout << "姓名:" << name << endl;
cout << "年龄:" << age << endl;
cout << "分数:" << score << endl;
}
void setName(string name) {
this->name = name;
}
void setAge(int age) {
this->age = age;
}
void setScore(double score) {
this->score = score;
}
string getName() {
return this->name;
}
int getAge() {
return this->age;
}
double getScore() {
return this -> score;
}
};
int main() {
Student s1;
s1.name = "tom";
s1.age = 12;
s1.score = 99.0;
s1.show();
s1.setName("jack");
s1.setAge(22);
s1.setScore(100.0);
cout << s1.getName() << endl;
cout << s1.getAge() << endl;
cout << s1.getScore() << endl;
s1.show();
system("pause");
return 0;
}
输出:
c++中的访问权限:
#include<iostream>
using namespace std;
class Student {
private:
string name;
int age;
double score;
public:
void setName(string name) {
this->name = name;
}
void setAge(int age) {
this->age = age;
}
void setScore(double score) {
this->score = score;
}
string getName() {
return this->name;
}
int getAge() {
return this->age;
}
double getScore() {
return this -> score;
}
void show() {
cout << "姓名:" << name << endl;
cout << "年龄:" << age << endl;
cout << "分数:" << score << endl;
}
};
int main() {
Student s1;
/* 此时这样访问会报错
s1.name = "tom";
s1.age = 12;
s1.score = 99.0;
*/
s1.show();
//可以通过set和get方法去操作成员私有变量
s1.setName("jack");
s1.setAge(22);
s1.setScore(100.0);
cout << s1.getName() << endl;
cout << s1.getAge() << endl;
cout << s1.getScore() << endl;
s1.show();
system("pause");
return 0;
}
输出:
对于全局变量,如若不初始化,都会默认有一个固定的值;对于局部变量,如若不初始化,默认会有一个随机值。