C++封装的全部总结

限于喜欢 提交于 2020-02-15 20:37:16

类是对现实生活中一类具有共同特征的事物的抽象
类是面向对象程序设计实现信息封装的基础。
类是一种用户定义类型,也称类类型
类的实例称为对象。
类的实质是一种数据类型

面向对象原则

以对象为中心,以谁做什么来表达程序的逻辑,对象的所以行为都通过调用函数来实现

封装

private : 只读属性,不可被外界修改
public :可被外界修改读取

内联函数

使用关键字inline定义,编译时将函数体代码和实参代替函数的调用语句,换句话说,省去了调用函数的过程,效率更高,速度更快,但那要求逻辑简单,不可太复杂,若太过复杂,加上inline也没有用

类内定义

整个函数都定义在类里面
类内定义的成员函数,编译器会将其优先编译为内联函数,即简单函数自动编译为内联函数

类外定义

同文件类外定义

注意:关于变量名的定义m_+数据类型+名称(更规范)

class Teacher {
    public:
        void setName(string _name);
        string getName();
        void setGender(string _gender);
        string getGender();
        void setAge(int _age);
        int getAge();
        void teach();
    private:
        string m_strName;
        string m_strGender;
        int m_iAge;
};
void Teacher::setName(string _name) {
    m_strName = _name;
}
string Teacher::getName() {
    return m_strName;
}
void Teacher::setGender(string _gender) {
    m_strGender = _gender;
}
string Teacher::getGender() {
    return m_strGender;
}
void Teacher::setAge(int _age) {
    m_iAge = _age;
}
int Teacher::getAge() {
    return m_iAge;
}
void Teacher::teach() {
    cout<<"Teach"<<endl;
}

构造函数

内存分区
栈区:int x = 0; int *p = NUll;
堆区:int *p = new int[20];
全局区:存储全局变量即静态变量
常量区:string str = “hello”;
代码区:存储逻辑代码的二进制
构造函数在对象实例化时被自动调用
构造函数与类同名
构造函数没有返回值
实例化对象时仅用一个构造函数
当用户没有定义构造函数时,编译器自动生成一个构造函数

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!