C++靜態成員的初始化,特別是QMap
寫一個靜態成員類,當作全域性變數用,結果QMap型別的怎麼搞都不行,最後終於弄明白了,寫的這裡備忘:
Util.h內容
#ifndef UTIL_H_
#define UTIL_H_
#include <QString>
#include <QUrl>
#include <QHttpResponseHeader>
#include <QMap>
#include <QVariant>
class Util: public QObject {
Q_OBJECT
public:
Util();
virtual ~Util();
public:
static QMap<QString, QMap<QString, QVariant> > cropsMap;
static QMap<QString, QString> cookieMap;
static QString uin;//QQ號碼
static QString uname;//QQ名字
public:
static void setCookie(QString key, QString value);
static void setCookie(const QHttpResponseHeader &);
static QString getCookie();
static QString getUrlPath(QUrl);
static QString getFarmKey(uint);
static QString Util::getRemainingTime(uint plantingTime, uint needfulTime,
int timeoffset, int *remainingSec);
};
#endif /* UTIL_H_ */
其中靜態成員變數必須在Util.cpp中初始化
#include <QDateTime>
#include "Util.h"
#include "md5.h"
#include <QList>
#include <QPair>
#include <qDebug>
QMap<QString,QMap<QString,QVariant> > Util::cropsMap;//初始化靜態成員變數
QMap<QString,QString> Util::cookieMap;
QString Util::uin;
QString Util::uname;
Util::Util() {
// TODO Auto-generated constructor stub
}
Util::~Util() {
// TODO Auto-generated destructor stub
}
相關推薦
C++類的靜態成員初始化詳細講解
記住:通常靜態資料成員在類宣告中宣告,在包含類方法的檔案中初始化.初始化時使用作用域操作符來指出靜態成員所屬的類.但如果靜態成員是整型或是列舉型const,則可以在類宣告中初始化!!! 複製程式碼 程式碼如下: #include <iostream> using namespace std;
C++ 之靜態成員 初始化必須在定義外
如題 一般情況下,C++定義一個類會用2個檔案,“class.h”和 “class.cpp”, 使用的時候一般會讓函式在.h中宣告,然後.cpp中定義,而成員資料一般在建構函式或者.h中就初始化了。
C++類成員初始化順序問題
今天剛把買了一個月的劍指offer這本書翻閱一下,看到一個簡單的舉例。說應聘C++崗位的不知道成員變數初始化順序!大冬天的背後竟冒出了一絲冷汗,因為我也不知道,所以就上網查了一下,將學到的知識記錄如下。 主要參考部落格: 問題來源: 由於面試題中,
C++靜態資料初始化總結
靜態資料具有全域性變數一樣的共享性質,但是在面嚮物件語言中,使用全域性變數會破壞其程式設計中的資訊隱蔽原則,這與面向物件的封裝特點是相悖的。為了實現同一個類的多個物件之間的資料共享,C++提出了靜態資料成員的概念。 在一個類中,實現靜態成員的方法是在資料型別定義時說明為s
C# WPF DateTime 初始化,賦值 DateTime 如何賦值
DateTime dt = new DateTime(2008, 5, 1, 8, 30, 52,001); //正確 DateTime dt = new DateTime(); dt.Year = 2008;//錯誤 Year 是隻讀屬性,DateTime
C++靜態成員的初始化,特別是QMap
寫一個靜態成員類,當作全域性變數用,結果QMap型別的怎麼搞都不行,最後終於弄明白了,寫的這裡備忘: Util.h內容 #ifndef UTIL_H_#define UTIL_H_#include <QString>#include <QUrl>#in
C++構造函數對類成員變量初始化,使用初始化列表和構造函數內部直接賦值 的差別
初始化列表 不能 構造 調用 ron 二次 art size strong 初始化和賦值對內置類型的成員沒有什麽大的差別,像任一個構造函數都能夠。但有的時候必須用帶有初始化列表的構造函數: (1) 成員類型是沒有默認構造函數的類。若沒有提供顯式初始化時,則編譯器隱式
c++靜態成員變量初始化時不受訪問權限控制
靜態成員 col stat name code new clas getname return 1、要在類外初始化,const 成員變量才能在類內初始化 2、初始化在類外,而不在main函數內 1 class A{ 2 private: 3 string n
C++模板類中靜態資料成員初始化
首先看程式碼,靜態資料成員分為兩種情況,第一種不依賴模版型別引數,第二種依賴模版型別引數。 template <typename T> class TestTemStatic{ public: static int knownTypeV
C++普通變數、C++靜態成員變數、C++成員常量、C++靜態成員常量的初始化方法
最近複習C++的一些知識,遇到了一個我比較容易混淆、傻傻分不清的知識點,那就是C++的變數的型別初始化或賦初值,大致有普通成員變數、靜態成員變數、成員常量這三種,還有一種組合的靜態成員常量。 看到這幾種資料成員時很尷尬,經常就把某兩種搞混了,所以為了方便和好理解
c++中對類中私有成員中的靜態變數初始化
1.static成員的所有者是類本身和物件,但是多有物件擁有一樣的靜態成員。從而在定義物件時不能通過建構函式對其進行初始化。 2.靜態成員不能在類定義裡邊初始化,只能在class body外初始化。 3.靜態成員仍然遵循public,private,protected訪問準
java 中類初始化,構造方法,靜態成員變數,靜態塊的載入順序
1、編譯和執行概念要搞清:編譯即javac的過程,負責將.java檔案compile成.class檔案,主要是型別、格式檢查與編譯成位元組碼檔案,而載入是指java *的過程,將.class檔案載入到記憶體中去解釋執行,即執行的時候才會有載入一說。 2、類的載
C++靜態成員變數的初始化
需要注意的是:靜態資料成員不能在類中初始化,一般在類外和main()函式之前初始化,預設時初始化為0。 1.static成員的所有者是類本身,但是多個物件擁有一樣的靜態成員。從而在定義物件是不能通過建構函式對其進行初始化。 2.靜態成員不能在類定義裡邊初始化,只能在clas
C#靜態常量默認初始化,但仍然為null
span arr 靜態常量 項目 tps 不清楚 ask .sh ons 最近在做一個項目的時候,發現標記了ThreadStatic特性的靜態變量,即使默認已經初始化,但在使用的時候仍然可能為NULL,以下是一段測試代碼: (不清楚ThreadStatic的可以點擊這htt
c++類 用冒號初始化對象(成員初始化列表)
函數 ace end -1 box 技術分享 對象 mage stream c++類 用冒號初始化對象(成員初始化列表) 成員初始化的順序不同於它們在構造函數初始化列表中的順序,而與它們在類定義中的順序相同 #include<iostream> int n=0
指定類型的成員XX”不支持實體LINQ。只有初始化,成員單位,和實體導航性能的支持。
where 創建 pos var != sql 支持 bre spec The specified type member ‘DeleteFlag‘ is not supported in LINQ to Entities. Only initializers, entit
C#數據沒初始化,使用會報錯,可以初始化null
rgs send protect null new 報錯 tar sender ted protected void Page_Load(object sender, EventArgs e) { string[] A; if (B== 0)
Java類的各種成員初始化順序如:父子類繼承時的靜態代碼塊,普通代碼塊,靜態方法,構造方法,等先後順
依次 成員初始化順序 main class 實例對象 變量 影響 {} 所在 class B extends A ,然後A類也就是父類裏面有靜態代碼塊,普通代碼塊,靜態方法,靜態成員變量,普通成員變量,普通方法。子類也是這樣,然後繼承之後,關於程序打印輸出的結果。涉及到Ja
C語言 ,單鏈表實現佇列(初始化,入隊,出隊,元素個數,隊首元素,是否為空)
單鏈表實現佇列: 連結串列為空的判斷條件:pQueue->pFront==pQueue->pRear或者若結構體中存在數的個數時,判斷pQueue->size==0,即元素個數為0 標頭檔案:佇列.h #pragma once #include<
C++成員初始化列表
C++類成員初始化列表 C++型別定義 C++建構函式的初始化列表定義 C++建構函式執行的兩個階段 為什麼使用初始化列表 C++裡面哪些東西必須放在初始化列表裡面 成員變數的初始化順序 這邊文章主要學習C++