Water

因为我开学了,刚好学到了,琢磨了一下,有点理解,然后水一篇,应该没什么人看~

正题

在C++里,面向对象只和一个叫class的关键字有关系

例如

#include <string>
class student() {
	private:
		string name; // 神了这里居然没变色
		int age;
		int score;
	public:
		... ...
};

上面这段代码就是利用class关键字来创建了一个名为student的对象,这个对象中的私有变量private包含了name,age,score这三个变量,私有变量就类似于一个可以随时更改的值,你只需要把你想要的值写入,就可以直接替换这三个私有变量代表的值,只需要写在主函数中

lass student {
    private: // 私有成员变量
        string name;
        int age;
        int score;
    public: // 函数
        student(string n,int a, int s) {
            name = n;
            age = a;
            score = s;
        }
        void info() {
            cout << "NAME " << name << endl;
            cout << "AGE " << age << endl;
            cout << "SCORE " << score << endl;
        }
        void set_score(int s) {
            if (s >= 0 && s <= 100) {
                score = s;
            } else {
                cout << "ERROR!!!"<< endl;
            }
        }
        int get_score() {
            return score;
        }
};
int main() {
    student stu1("LiMing", 20, 50); // 看这里!
    cout << "INFO:\n";
    stu1.info();

}

说人话就是,你可以在class里定义一个变量,就和在主函数中直接定义一样,但是可以直接在主函数中赋值给这些私有变量

面对两个象

面向对象可以理解为,你要干什么都可以直接在你写的class里面找,例如我把三角新的周长公式和三角形的面积公式同时写到public里,就可以直接在主函数里为三角形的三边赋值然后一对二进行输出两个内容

#inclde <math.h>
#inclde <iostream>
class math {
	private:
        int side_1;
        int side_2;
        int side_3;
	public:
        math(int s1,int s2,int s3) {
            side_1 = s1;
            side_2 = s2;
            side_3 = s3;
        }
        int triaArea()  {
            int area;
            int p;
            p = (side_1 + side_2 + side_3)/2;
            area = (p*(p - side_1)*(p - side_2)*(p - side_3));
            return sqrt(area);
        }
        int triaLength() {
            int length;
            length = side_1 + side_2 + side_3;
            return length;
        }
};
int main() {
    math Gra2(3,4,5); // 面向三角形
    int area = Gra2.triaArea();
    int length_t = Gra2.triaLength();
    std::cout << area << std::endl;
    std::cout << length_t << std::endl;
}

总结

所以面向对象可以理解为 1.数据+功能 = 类 (private + public = class) 2.用类创造的叫对象 (class student = 创建对象) 2.对象封装,只留接口(side_1/2/3和name,score,age的变量名都是不可以更改的,但是参数是可以改的,参数就是接口) 4.多合一,一个类可以处理很多事情(area + length = class) 5.管理方便,逻辑清晰,看着舒服

希望我的文章可以让你可以更加简单地理解面向对象是什么东东,不懂评论区留言问我,一起进步,给你解惑的过程我也学到东西了~