zoukankan      html  css  js  c++  java
  • 【转】静态变量和静态函数导致的问题

    1.静态函数内部使用了外部非静态成员变量导致error C2228: left of '.push_back' must have class/struct/union type。
    外部定义    typedef list<int>    intList;
        intList m_lstChannelInfos;
    静态函数使用了该变量

    2.静态变量未初始化导致link2001出错。


    静态数据成员的使用方法和注意事项如下:

      1、静态数据成员在定义或说明时前面加关键字static。

      2、静态成员初始化与一般数据成员初始化不同。静态数据成员初始化的格式如下:

        <数据类型><类名>::<静态数据成员名>=<值>

      这表明:

            (1) 初始化在类体外进行,而前面不加static,以免与一般静态变量或对象相混淆。

      (2) 初始化时不加该成员的访问权限控制符private,public等。

      (3) 初始化时使用作用域运算符来标明它所属类,因此,静态数据成员是类的成员,而不是对象的成员。

      3、静态数据成员是静态存储的,它是静态生存期,必须对它进行初始化。

      4、引用静态数据成员时,采用如下格式:

       <类名>::<静态成员名>

    如:
    class Myclass
    {
    public:
    Myclass(int a, int b, int c);
    void GetNumber();
    void GetSum();
    private:
    int A, B, C;
    static int Sum;
    };

    int Myclass::Sum = 0;

    一般的对象不能赋值的也要声明如
    static XChannelFactory m_sChannelFactory ;
    XChannelFactory XChannelFactory::m_sChannelFactory;

    原文

  • 相关阅读:
    使用dtaidistance实现dtw算法(二)
    一元二次曲线拟合Excel用
    使用dtaidistance实现dtw算法
    一元二次曲线拟合
    爬取豆瓣电影top250
    pandasgui
    就业生态解析篇——数据预处理代码部分
    爬取51job招聘信息(一)
    负载均衡-LVS
    负载均衡
  • 原文地址:https://www.cnblogs.com/2018shawn/p/9370292.html
Copyright © 2011-2022 走看看