C++:公有和私有,const,static

10_12公有和私有

1.公有和私有性
公有数据成员:对外界具有读写权限
私有数据成员:除了自己类内部不可以使用,C++中默认权限为private
权限选择,必须要对外界提供,就放在public,其他的都放在private
一般成员属性都放在Private,如果外界需要使用就提供公有接口
2.初始化和赋值
初始化:在定义时候给值,内存划分时候给值
赋值:定义之后给值,内存划分之后给值
3.初始化列表:
①只有构造函数有初始化列表
②必须初始化的成员需要放在初始化列表
③在本对象之前需要完成的动作,必须放在初始化列表
4.const 方法
const成员和引用必须要放在初始化列表
常对象只能调用常方法,构造函数,析构函数和静态函数不影响
常方法中只能调用常方法,静态函数不影响
5.哪些成员对象需要写成常方法?
(1)如果成员方法内不需要改动成员,并且没有对外暴露成员引用或者指针就可以直接写成
(2)如果成员内部不需要改动成员,但是会对外暴露成员引用或者指针,就写两个成员方法(const方法和非const方法)形成重载
(3)如果成员内部需要改动成员,就写成普通方法
6.静态成员变量(static)
存储在数据段,静态成员在一个类中只有一份,无论构造多少,都只有一份。只能在类外进行初始化,在.cpp中初始化,且只能初始化一次,去掉static关键字,并且加上作用域
静态成员变量访问可以不依赖与对象,不依赖于this指针,使用类的作用域可以直接进行访问
静态成员方法:没有this指针,只能使用静态成员
7.单例模式:
构造函数放到私有成员中,提供静态接口提供对象,

#include<iostream>
#include<mutex>
using namespace std;
//单例模式
class Only
{
public:
    static Only* get_Only()
    {
        if (NULL == _only)
        {
            ——lock.lock()
                if (NULL == _only)
                {
                    _only = new Only();
                }
            _lock.unlock();
        }
        return _only;
    }
private:
    Only();
    static mutex _lock;
    static Only* _only;
};
Only* Only::_only = NULL;
mutex Only::_lock = mutex();
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值