前置疑问(想解决的问题)
Q1、结构体的缺陷,以及与面向对象的联系。
Q2、什么是面向对象?
Q3、面向对象的优点?
Q4、类对象和成员变量的联系
Q5、对象如何调用类中的方法?
学习内容
一、结构体的缺陷和类的优点
#include <iostream>
using namespace std;
struct student{
int id;
string name;
int math;
};
class stu{
private:
int id;
string name;
int math;
public:
void set(int id1, string name1, int math1)
{
id = id1;
name = name1;
math = math1;
}
void print(void)
{
cout << "id="<<id<<endl;
cout << "name="<<name<<endl;
cout << "math="<<math<<endl;
}
};
int main(void)
{
struct student s1;
s1.id = 1;
s1.name = "小明";
s1.math = -10;
cout << "s1.id=" << s1.id<<endl;
cout << "s1.name=" << s1.name << endl;
cout << "s1.math=" << s1.math << endl;
stu s2;
s2.set(2, "小红", 100);
s2.print();
exit(0);
}
运行结果:
A1、结构体的缺陷:
- 结构体中的变量是公开的,可以输入不符合变量要求的value,比如math的value不能为负数。即数据安全性不高。
- 结构体中不能定义方法,可操作性不强。
A2、什么是对象?
对象是对事物高度抽象化,具有属性和方法这两大核心组成成份。通过关键字class实现。
A3:
- 有关键字private和public,却分了重要的变量,保护变量的安全性,外部访问不了。
- 可以定义方法,有了初始化成员变量的操作。
- 更加符合人的思想,有隐私也有对外公开的地方。