C++中类的封装

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

面向对象原则

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

封装

private : 只读属性,不可被外界修改 
protect :来声明是希望与派生类分享但是不想被其他公共访问使用的成员
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”; 
代码区:存储逻辑代码的二进制 
构造函数在对象实例化时被自动调用 
构造函数与类同名 
构造函数没有返回值 
实例化对象时仅用一个构造函数 
当用户没有定义构造函数时,编译器自动生成一个构造函数

拷贝构造函数

写法:类名(const类名&变量名),当通过同类型的对象实例化另外的对象时,自动调用拷贝构造函数。

析构函数

使用方法:~类名()
用处:函数执行完后自动释放资源
特点:1.如果没有自定义的析构函数则系统自动生成
     2.析构函数在对象销毁时自动调用
     3.析构函数没有返回值、没有参数也不能重载

对象的生命历程:申请内存->初始化列表->构造函数->参与运算->析构函数->释放内存

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值