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

个人网站可以做哪些主题网站建设设计报告前言

个人网站可以做哪些主题,网站建设设计报告前言,h5 建站网站 移动端,网站文章来源seostatic 关键字的作用#xff1a; 主要作用在于 控制变量或函数的作用域、生命周期以及它们如何被不同部分的程序访问#xff0c;从而帮助程序员管理内存、避免命名冲突#xff0c;并实现特定的设计模式#xff08;如单例模式#xff09;。 1. 静态局部变量#xff1a;当…static 关键字的作用 主要作用在于 控制变量或函数的作用域、生命周期以及它们如何被不同部分的程序访问从而帮助程序员管理内存、避免命名冲突并实现特定的设计模式如单例模式。 1. 静态局部变量当在一个函数内部声明一个静态局部变量如下面单例模式示例中的static BoxFactory boxFactory;这个变量的生命周期将延伸到包含它的函数结束之后。这样的静态局部变量在程序运行期间只会被初始化一次即使函数被多次调用。它保留了上一次函数调用结束时的值。 2.静态全局变量在文件作用域声明的静态变量即在函数外部但用static修饰其作用范围限制在定义它的源文件内即它是“内部链接”的。这意味着其他源文件中的代码不能直接访问这个变量有助于减少命名冲突并封装数据。 3.静态成员变量在类声明中使用static声明的成员变量不属于类的任何特定实例而是属于整个类。所有类实例共享同一个静态成员变量的副本。静态成员变量必须在类定义之外初始化。静态成员可以通过类名直接访问无需实例化对象。 4.静态成员函数静态成员函数也是类的一部分但不与类的任何特定实例关联。它们不能访问非静态成员变量因为非静态成员变量是特定于实例的但可以访问静态成员变量和其他静态成员函数。静态成员函数同样通过类名直接调用无需实例化对象。 5.静态外部变量声明在头文件中使用extern和static声明变量可以让多个源文件共享同一变量的声明但每个使用该声明的源文件需要有一个独立的定义没有static以避免多重定义错误。这种方式主要用于跨文件共享常量或全局数据。 static 关键字示例 1.静态局部变量 下面代码中有两个函数fun1和fun2,其中fun2中的局部变量b用static关键字修饰成静态局部变量那么变量b不是在栈区上创建的而是在静态区上创建的。在静态区上创建的变量生命周期是全局的也就是说静态局部变量的生命周期和程序的生命周期相同 我们分别运行五次fun1()和fun2()会发现b只会被创建一次后面执行fun2()函数时由于存储在静态区没有被销毁所以还是使用的已经存在的b并不会重新创建理解这一点对单例模式中全局唯一一次类的实例化很关键 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.静态全局变量 静态全局变量的例子就不举例了很多理解被static修饰的全局变量只能在本cpp文件中访问。 3.静态成员函数静态成员变量 设计模式中的工厂模式单例模式很好解释静态成员函数的用法 下面的代码块有四个类 我们可以通过工厂类可以实例化圆形 和正方形但每次用工厂类的时候我们不需要每次都实例化一个工厂因此工厂类就用到了单例模式使工厂在整个系统的生命周期唯一避免多次创建。 此外阅读时注意工厂类中getInstance()使用static 修饰 static ShapeFactory getInstance() //静态成员函数{static ShapeFactory instance; //静态成员变量return instance;}确保唯一性通过将getInstance方法声明为静态成员函数可以不依赖于类的任何实例直接访问。这使得无论何时何地调用getInstance都只会返回同一个ShapeFactory实例保证了全局唯一性。全局访问静态方法可以在不创建类实例的情况下被调用因此可以在程序的任何地方访问工厂类的单例便于统一管理和协调对象的创建过程。 因此在调用时还可以写成 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; // 私有构造函数ShapeFactory(const ShapeFactory) delete; // 禁止拷贝构造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; } 我们可以通过一下代码来验证工厂类是否在全局中只创建了一次 // 形状工厂类 - 单例模式 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();// 私有构造函数~ShapeFactory();ShapeFactory(const ShapeFactory) delete; // 禁止拷贝构造ShapeFactory operator(const ShapeFactory) delete; // 禁止赋值操作 };ShapeFactory::ShapeFactory() {std::cout 工厂类构造函数 std::endl; }ShapeFactory::~ShapeFactory() {std::cout 工厂析构函数 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.dnsts.com.cn/news/267472.html

相关文章:

  • 河南做网站哪家好学短视频剪辑与制作
  • 浙江创新网站建设销售最好的免费网站空间
  • 网站怎么创建自己的网站中国网库企业黄页
  • 杭州海淀区网站建设深圳企业贷款中介
  • 网站背景图建站语言有哪些
  • 贵州建站互联网科技有限公司丹东网站seo
  • 主题网站设计模板合肥优化网站哪家公司好
  • 做网站的上海公司关于软文营销的案例
  • 网站用自己的电脑做服务器吗医院网站开发多少钱
  • 网站促销计算服务器租用一天
  • 东莞外贸网站建设哪家好网站首页设计公司
  • 环保设备网站建设方案蓝盟it外包
  • 手机网站建设 移商动力photoshop官方下载
  • 网站域名要钱吗哪些网站可以直接做英文字谜
  • html5响应式设计公司网站模板整站html源码下载知名网络公司
  • 优质的邵阳网站建设软件商城电脑版下载
  • 南昌网站建设培训学校网站建设与维护一般需要多少钱每年
  • 石家庄市住房和建设局网站wordpress调用搜索框
  • 面试网站建设的问题网站外链建设的八大基本准则
  • 百度竞价 百度流量 网站权重企业网站建设背景
  • 在线课堂手机网站模板网站流量 龙优化软件
  • 做直播网站需要多少钱校园网站制作模板
  • 手机跳转网站建设浙江做网站的公司有哪些
  • 做网站中二级导航链接到一级导航wordpress顶部图像使用小工具
  • 承德建设网站班组建设展板哪个网站有
  • 申请备案 关网站中国知名网站排行榜
  • 门户网站建设成本分类页分页wordpress
  • 广州网站推广找谁绵阳银行网站建设
  • 广州技术支持:网站建设上国外网站速度慢
  • 华大基因 网站公司建设新闻投稿