中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

專門做外貿(mào)的網(wǎng)站有哪些怎樣在百度上發(fā)布廣告

專門做外貿(mào)的網(wǎng)站有哪些,怎樣在百度上發(fā)布廣告,響應式網(wǎng)站與自適應,網(wǎng)站服務器租用方法static 關(guān)鍵字的作用: 主要作用在于 控制變量或函數(shù)的作用域、生命周期以及它們?nèi)绾伪徊煌糠值某绦蛟L問,從而幫助程序員管理內(nèi)存、避免命名沖突,并實現(xiàn)特定的設(shè)計模式(如單例模式)。 1. 靜態(tài)局部變量:當…

static 關(guān)鍵字的作用:

主要作用在于 控制變量或函數(shù)的作用域生命周期以及它們?nèi)绾伪徊煌糠值?mark>程序訪問,從而幫助程序員管理內(nèi)存、避免命名沖突,并實現(xiàn)特定的設(shè)計模式(如單例模式)。

  • 1. 靜態(tài)局部變量:當在一個函數(shù)內(nèi)部聲明一個靜態(tài)局部變量(如下面單例模式示例中的static BoxFactory boxFactory;),這個變量的生命周期將延伸到包含它的函數(shù)結(jié)束之后。這樣的靜態(tài)局部變量在程序運行期間只會被初始化一次,即使函數(shù)被多次調(diào)用。它保留了上一次函數(shù)調(diào)用結(jié)束時的值。

  • 2.靜態(tài)全局變量:在文件作用域聲明的靜態(tài)變量(即在函數(shù)外部,但用static修飾),其作用范圍限制在定義它的源文件內(nèi),即它是“內(nèi)部鏈接”的。這意味著其他源文件中的代碼不能直接訪問這個變量,有助于減少命名沖突并封裝數(shù)據(jù)。

  • 3.靜態(tài)成員變量:在類聲明中使用static聲明的成員變量不屬于類的任何特定實例,而是屬于整個類。所有類實例共享同一個靜態(tài)成員變量的副本。靜態(tài)成員變量必須在類定義之外初始化。靜態(tài)成員可以通過類名直接訪問,無需實例化對象。

  • 4.靜態(tài)成員函數(shù):靜態(tài)成員函數(shù)也是類的一部分,但不與類的任何特定實例關(guān)聯(lián)。它們不能訪問非靜態(tài)成員變量(因為非靜態(tài)成員變量是特定于實例的),但可以訪問靜態(tài)成員變量和其他靜態(tài)成員函數(shù)。靜態(tài)成員函數(shù)同樣通過類名直接調(diào)用,無需實例化對象

  • 5.靜態(tài)外部變量聲明:在頭文件中使用extern和static聲明變量,可以讓多個源文件共享同一變量的聲明,但每個使用該聲明的源文件需要有一個獨立的定義(沒有static),以避免多重定義錯誤。這種方式主要用于跨文件共享常量或全局數(shù)據(jù)。

static 關(guān)鍵字示例:

1.靜態(tài)局部變量

下面代碼中有兩個函數(shù)fun1和fun2,其中fun2中的局部變量b用static關(guān)鍵字修飾成靜態(tài)局部變量,那么變量b不是在棧區(qū)上創(chuàng)建的,而是在靜態(tài)區(qū)上創(chuàng)建的。在靜態(tài)區(qū)上創(chuàng)建的變量,生命周期是全局的,也就是說,靜態(tài)局部變量的生命周期和程序的生命周期相同
我們分別運行五次fun1()和fun2(),會發(fā)現(xiàn)b只會被創(chuàng)建一次,后面執(zhí)行fun2()函數(shù)時由于存儲在靜態(tài)區(qū)沒有被銷毀,所以還是使用的已經(jīng)存在的b并不會重新創(chuàng)建,理解這一點對單例模式中全局唯一一次類的實例化很關(guān)鍵

void fun1() {int a = 0;a++;printf(" a = %d   | ", a);
}void fun2() {static int b = 0;b++;printf(" b = %d   | ", b);
}void main()
{for (size_t i = 0; i < 10; i++){if (i < 5) fun1();else fun2();}
}

在這里插入圖片描述

2.靜態(tài)全局變量

靜態(tài)全局變量的例子就不舉例了,很多理解,被static修飾的全局變量只能在本cpp文件中訪問。

3.靜態(tài)成員函數(shù),靜態(tài)成員變量

設(shè)計模式中的工廠模式+單例模式很好解釋靜態(tài)成員函數(shù)的用法:
下面的代碼塊有四個類:
我們可以通過工廠類可以實例化圓形 和正方形,但每次用工廠類的時候,我們不需要每次都實例化一個工廠,因此工廠類就用到了單例模式,使工廠在整個系統(tǒng)的生命周期唯一,避免多次創(chuàng)建。
在這里插入圖片描述
此外閱讀時注意工廠類中g(shù)etInstance()使用static 修飾,

	static ShapeFactory& getInstance() //靜態(tài)成員函數(shù){static ShapeFactory instance;  //靜態(tài)成員變量return instance;}
  • 確保唯一性:通過將getInstance方法聲明為靜態(tài)成員函數(shù),可以不依賴于類的任何實例直接訪問。這使得無論何時何地調(diào)用getInstance,都只會返回同一個ShapeFactory實例,保證了全局唯一性。
  • 全局訪問:靜態(tài)方法可以在不創(chuàng)建類實例的情況下被調(diào)用,因此可以在程序的任何地方訪問工廠類的單例,便于統(tǒng)一管理和協(xié)調(diào)對象的創(chuàng)建過程。
    因此在調(diào)用時還可以寫成:
int main()
{auto circle = ShapeFactory::getInstance().createShape("Circle");if (circle){circle->draw();}auto square = ShapeFactory::getInstance().createShape("Circle");if (square){square->draw();}return 0;
}
#include <iostream>
#include <iostream>
#include <memory>
using namespace std;// 抽象形狀類
class Shape
{
public:virtual ~Shape() {}virtual void draw() const = 0;
};// 圓形類
class Circle : public Shape
{
public:void draw() const override{std::cout << "Drawing Circle" << std::endl;}
};// 正方形類
class Square : public Shape
{
public:void draw() const override{std::cout << "Drawing Square" << std::endl;}
};// 形狀工廠類 - 單例模式
class ShapeFactory
{
public:static ShapeFactory& getInstance(){static ShapeFactory instance;return instance;}Shape* createShape(const std::string& shapeType){if (shapeType == "Circle"){Circle* pCircle = new Circle();return pCircle;}else if (shapeType == "Square"){Square* pSquare = new Square();return pSquare;}else{return NULL;}}private:ShapeFactory() = default;								// 私有構(gòu)造函數(shù)ShapeFactory(const ShapeFactory&) = delete;			// 禁止拷貝構(gòu)造ShapeFactory& operator=(const ShapeFactory&) = delete; // 禁止賦值操作
};int main()
{ShapeFactory& factory = ShapeFactory::getInstance(); // 獲取工廠單例auto circle = factory.createShape("Circle");if (circle){circle->draw();}auto square = factory.createShape("Square");if (square){square->draw();}return 0;
}

我們可以通過一下代碼來驗證工廠類是否在全局中只創(chuàng)建了一次

// 形狀工廠類 - 單例模式
class ShapeFactory
{
public:static ShapeFactory& getInstance(){static ShapeFactory instance;return instance;}Shape* createShape(const std::string& shapeType){if (shapeType == "Circle"){Circle* pCircle = new Circle();return pCircle;}else if (shapeType == "Square"){Square* pSquare = new Square();return pSquare;}else{return NULL;}}private:ShapeFactory();// 私有構(gòu)造函數(shù)~ShapeFactory();ShapeFactory(const ShapeFactory&) = delete;			// 禁止拷貝構(gòu)造ShapeFactory& operator=(const ShapeFactory&) = delete; // 禁止賦值操作
};ShapeFactory::ShapeFactory() {std::cout << "工廠類構(gòu)造函數(shù)" << std::endl;
}ShapeFactory::~ShapeFactory() {std::cout << "工廠析構(gòu)函數(shù)" << std::endl;
}
int main()
{for (int i = 0; i < 5; i++) {ShapeFactory& factory = ShapeFactory::getInstance(); // 獲取工廠單例std::cout << "i = " << i << std::endl;}return 0;
}

在這里插入圖片描述

http://www.risenshineclean.com/news/22160.html

相關(guān)文章:

  • 單位網(wǎng)站建設(shè)申請seo1新地址在哪里
  • 網(wǎng)站上傳文件不大于5M定么做百度收錄怎么查詢
  • 蛋糕網(wǎng)站內(nèi)容規(guī)劃網(wǎng)絡營銷工程師是做什么的
  • 購物網(wǎng)站建設(shè)的可行性內(nèi)部優(yōu)化
  • 天津自貿(mào)區(qū)建設(shè)局網(wǎng)站關(guān)鍵詞出價計算公式
  • 傳媒公司做網(wǎng)站條件百度關(guān)鍵詞推廣方案
  • 機械行業(yè)營銷型網(wǎng)站成都搜狗seo
  • 自己做銷售獨立網(wǎng)站網(wǎng)站運營及推廣方案
  • dw不用代碼做網(wǎng)站網(wǎng)絡營銷的推廣方法
  • 西安優(yōu)秀的集團門戶網(wǎng)站建設(shè)服務商長沙網(wǎng)站推廣
  • 石家莊網(wǎng)站建設(shè)求職簡歷怎么申請網(wǎng)站空間
  • 甘孜商城網(wǎng)站建設(shè)seo實戰(zhàn)培訓機構(gòu)
  • 沒有外貿(mào)網(wǎng)站 如果做外貿(mào)專業(yè)網(wǎng)絡推廣
  • 網(wǎng)站子頁面如何做seo經(jīng)典模板網(wǎng)站建設(shè)
  • 網(wǎng)站如何做才能被360收錄營銷推廣軟件
  • 個人企業(yè)網(wǎng)站怎么建設(shè)seo外鏈資源
  • 網(wǎng)站續(xù)費收多少合適營銷手段有哪些
  • 扁平化企業(yè)網(wǎng)站模板賬號權(quán)重查詢?nèi)肟谡鹃L工具
  • 網(wǎng)站信息向上滾動標簽網(wǎng)頁設(shè)計與制作代碼成品
  • 寶盈集團直營網(wǎng)站怎么做什么是網(wǎng)絡營銷平臺
  • 我的網(wǎng)站為什么打不開喬拓云建站平臺
  • 制作網(wǎng)站賺錢嗎足球比賽統(tǒng)計數(shù)據(jù)
  • 好看的網(wǎng)站設(shè)計網(wǎng)站seo怎么優(yōu)化關(guān)鍵詞排名培訓
  • 做外貿(mào)自己的公司網(wǎng)站成品app直播源碼有什么用
  • spring boot 網(wǎng)站開發(fā)網(wǎng)站編輯
  • 知道域名怎么進入網(wǎng)站北京網(wǎng)站建設(shè)公司報價
  • 圣輝友聯(lián)劉金鵬做網(wǎng)站鄭州網(wǎng)站關(guān)鍵詞優(yōu)化公司哪家好
  • 供應長沙手機網(wǎng)站建設(shè)天津關(guān)鍵詞排名推廣
  • wordpress 修改登錄地址seo的定義是什么
  • 企業(yè)網(wǎng)站模板下載需謹慎百度信息流投放在哪些平臺