当前位置: 首页 > wzjs >正文

网站以下内容未做缓存市场推广计划方案模板

网站以下内容未做缓存,市场推广计划方案模板,外包兼职做图的网站,网站建设的图片尺寸应该是像素C 中的 static 成员 static 成员是类中特殊的成员,它们与类本身关联,而不是与类的各个对象实例关联。static 成员分为 static 成员变量和 static 成员函数。 一、static 成员变量 1. 基本特性 - 类范围共享:所有类对象共享同一个 sta…

C++ 中的 static 成员
 
static 成员是类中特殊的成员,它们与类本身关联,而不是与类的各个对象实例关联。static 成员分为 static 成员变量和 static 成员函数。
 
一、static 成员变量
 
1. 基本特性
 
- 类范围共享:所有类对象共享同一个 static 成员变量
- 独立于对象:即使没有创建任何对象,static 成员也存在
- 单一定义:需要在类外单独定义和初始化
 
2. 声明与定义
 
class MyClass {
public:
    static int count;  // 声明(类内)
    
    MyClass() { count++; }
    ~MyClass() { count--; }
};

// 定义和初始化(类外,通常在.cpp文件中)
int MyClass::count = 0; 
 
 
3. 访问方式
 
// 通过类名访问(推荐)
MyClass::count;

// 通过对象访问(不推荐)
MyClass obj;
obj.count;
 
 
4. 特殊用法
 
- 类内常量:C++11 允许 static const 成员在类内初始化
class Constants {
public:
    static const int MAX_SIZE = 100;  // 类内初始化
};
 
 
二、static 成员函数
 
1. 基本特性
 
- 无 this 指针:不能访问非 static 成员
- 可直接调用:无需通过对象实例
- 常用作工具函数:与类相关但不依赖对象状态的函数
 
2. 定义与使用
 
class MathUtils

{
public:
    static double pi() { return 3.1415926; }
    
    static int add(int a, int b)

    {
        return a + b;
    }
};

// 调用方式
double circleArea = MathUtils::pi() * radius * radius;
int sum = MathUtils::add(5, 3);
 
 
3. 典型应用场景
 
1. 工厂方法:创建类实例
class Product

{
public:
    static Product* create()

    {
        return new Product();
    }
};
 
2. 单例模式:确保类只有一个实例
class Singleton

{
private:
    static Singleton* instance;
    Singleton() {}
public:
    static Singleton* getInstance()

    {
        if(!instance)

        {
            instance = new Singleton();
        }
        return instance;
    }
};
Singleton* Singleton::instance = nullptr;
 
 
三、static 成员的初始化
 
1. 基本规则
 
- 非 const static 成员:必须在类外定义和初始化
- const static 成员:
- 整型或枚举类型:可在类内初始化
- 其他类型:仍需在类外定义(C++17 引入 inline static 简化此情况)
 
2. C++17 改进
 
C++17 引入 inline static 成员,允许在类内直接初始化非 const static 成员:
 
class Modern

{
public:
    inline static int value = 42;  // C++17
};
 
 
四、static 成员的线程安全
 
1. 潜在问题
 
- static 成员变量在多线程环境下需要保护
- static 局部变量(在函数内)的初始化是线程安全的(C++11起)
 
2. 解决方案
 
class Logger

{
private:
    static std::mutex mtx;
    static std::vector<std::string> logs;
public:
    static void addLog(const std::string& msg)      {
        std::lock_guard<std::mutex> lock(mtx);
        logs.push_back(msg);
    }
};
 
 
五、最佳实践
 
1. 命名约定:考虑为 static 成员添加前缀(如 s*)提高可读性
2. 访问控制:合理使用 public/protected/private
3. 避免滥用:只在真正需要共享数据或功能时使用
4. 线程安全:多线程环境下确保同步访问
5. 替代方案:考虑命名空间内的全局函数/变量是否更适合
 
static 成员是 C++ 中强大的工具,正确使用可以:
 
- 减少全局命名空间的污染
- 实现类相关的共享数据和功能
- 优化内存使用(避免每个对象都存储相同数据)

http://www.dtcms.com/wzjs/458577.html

相关文章:

  • 淄博 做网站seo教学培训
  • wordpress如何关闭评论西安seo全网营销
  • 设计一个网站多少钱seo快速优化软件网站
  • 什么是网盟推广网站seo推广方案
  • 做食品研发都有哪些网站域名注册信息查询
  • 有什么网站是python做的巩义关键词优化推广
  • 网站添加文字大小网络精准推广
  • 厚街外贸网站建设公司广告联盟平台排名
  • 网站动态banner怎么做广州seo学徒
  • 食品行业网站建设seo规则
  • 新手做网站做那个seo网络推广怎么做
  • 做正规小说网站长沙seo袁飞
  • wordpress smtp 设置方法网络推广优化网站
  • 饶平网站建设公司黄冈网站seo
  • 中小企业网站设计总结外包服务公司
  • 建设银行网站名称怎么写资源最多的磁力搜索引擎
  • 网站建设排行网站优化推广哪家好
  • 广西建设执业资格注册中心家庭优化大师免费下载
  • 博彩网站开发宁波seo快速优化公司
  • 做网站时如何确定网站主题各大网站的网址
  • 373网站怎么做这样的网站网站推广排名收费
  • 建筑行业做网站营销方案推广
  • 深圳建设工程信息网站免费发帖推广平台
  • 商务公司网站建设推广平台的方式有哪些
  • 上海定制app开发公司温州seo网站推广
  • 项目名称semseo是什么意思
  • 网站首页特效如何出售自己的域名
  • 中国建设银行网址是什么夫唯seo怎么样
  • 做vr网站石家庄热搜
  • 各国网站建设排名站长工具精品