C/C++教程

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

本文主要是介绍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();
这篇关于C++:公有和私有,const,static的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!