精华内容
下载资源
问答
  • c++静态类实现

    万次阅读 2017-12-16 14:11:10
    c++静态类 静态类 静态类实现 静态类声明

    废话不多说,先上代码:

    静态类 View.h文件代码:

    static class  View
    {
    private:
        static Student  student;
    public:
    
        static int much ;
        static void  addStudent();
    
    };

    view.cpp 实现代码:

    Student View::factor;
    int View::much = 0;
    //必须要有的静态成员实现代码
    
    void View::addStudent() {
        Student st1;
        factor.add(st1);
        //此处静态成员不能使用 this->
    }

    主函数 main 外部调用

    
    #include "View.h"
    
    
    int main()
    {
        View::addStudent();
        //静态函数调用是可采用此方法
        return 0;
    }

    注:

    • 静态类所必须的初始化在类外进行(不应在.h文件内实行),而前面不加static,以免与外部静态变量(对象)相混淆。

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

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

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

    • 不能再实现中使用this关键字因为它已经实例化,开辟了内存

    • 调用时,标明所属静态类(也可以像math类采用命名空间,没有命名冲突)

    展开全文
  • c++静态

    万次阅读 2015-03-09 19:51:12
    C++静态

    今天在写C++的一个随机数生成器时,看到所有成员变量和成员函数都是static类型。想到这个整个类其实不需要实例,或者说只需要一份(产生随机数应该不需要多个实例呀~),干嘛不直接搞个static静态类呢?
    于是写了这个实验一下:

    #include <iostream>
    using namespace std;
    
    static class Test
    {
    public:
        static int GetData()
        {
            return data;
        }
    private:
        static int data;
    };
    
    int Test::data = 3;
    
    int main()
    {
        cout<<Test::GetData()<<endl;
        return 0;
    }

    倒是可以编译运行,但是会报一个warning
    warning C4091: ‘static ’ : ignored on left of ‘Test’ when no variable is declared
    这是什么意思呢?后来查了一下,在msdn社区上看到了解释:

    c++根本就没有静态类这个东西,这么写编译器会认为其实是想做
    static class Test
    {

    }tt;
    这个static关键字是针对tt而非Test的。但是这里的实际情况是没有变量tt,所以编译器给出了warning并且忽略了static关键字

    msdn社区:
    https://social.msdn.microsoft.com/Forums/en-US/75cc5b2e-0dd1-4efc-8d5a-1f497679d8e4/static-classes-causing-warnings

    展开全文
  • 二、C函数的DLL,C++静态调用。 1、CDLL.h文件#ifndef __CDLL_H__ #define __CDLL_H__ extern int _declspec(dllexport) foo(int x, int y); #endif2、CDLL.c文件:#include "CDLL.h" int foo(int x, int y) { ...

    一、项目结构
    这里写图片描述

    二、C函数的DLL,C++静态调用。
    1、CDLL.h文件

    #ifndef __CDLL_H__
    #define __CDLL_H__
    extern int _declspec(dllexport) foo(int x, int y);
    #endif
    
    

    2、CDLL.c文件:

    #include "CDLL.h"
    int foo(int x, int y)
    {
        return x + y;
    }

    3、C++调用:

    #include "DLLDemo.h"
    #include<iostream>
    using namespace std;
    
    #pragma comment(lib, "CDLL.lib")
    extern "C" int __declspec(dllimport) foo(int x, int y);
    
    int main()
    {
        int c = foo(1, 2);
        cout << c << endl;
    
        return 0;
    }

    说明:CDLL.lib文件,要拷贝到CDLLUse项目中。

    三、C++函数的C++静态调用
    这里写图片描述
    将CDLL.c改为CDLL即可。

    1、CDLL.h文件:

    #ifndef __CDLL_H__
    #define __CDLL_H__
    extern int _declspec(dllexport) foo(int x, int y);
    #endif
    
    

    2、CDLL.cpp文件:

    #include "CDLL.h"
    int foo(int x, int y)
    {
        return x + y;
    }

    3、调用:

    #include "DLLDemo.h"
    #include<iostream>
    using namespace std;
    
    #pragma comment(lib, "CDLL.lib")
    extern int __declspec(dllimport) foo(int x, int y);
    
    int main()
    {
        int c = foo(1, 2);
        cout << c << endl;
    
        return 0;
    }

    可以看到C++函数,在导出的时候,使用:

    extern int _declspec(dllexport) foo(int x, int y);
    

    在使用的时候:

    extern int __declspec(dllimport) foo(int x, int y);
    

    这里没有”C”没有关系,因为都是C++编译器。如果C++函数使用:

    extern "C" int _declspec(dllexport) foo(int x, int y);
    

    则在C++使用的时候,也需要配对的用:

    extern "C" int __declspec(dllimport) foo(int x, int y);
    
    展开全文
  • c++静态方法和静态成员

    千次阅读 2019-05-23 20:43:33
    c++静态方法和静态成员 便于实现同一类的不同对象之间数据共享 静态成员的提出是为了解决数据共享的问题。实现共享有许多方法,如:设置全局性的变量或对象是一种方法。但是,全局变量或对象是有局限性的。这一章里...

    c++静态方法和静态成员

    便于实现同一类的不同对象之间数据共享

    静态成员的提出是为了解决数据共享的问题。实现共享有许多方法,如:设置全局性的变量或对象是一种方法。但是,全局变量或对象是有局限性的。这一章里,我们主要讲述类的静态成员来实现数据的共享。

    静态数据成员

    在类中,静态成员可以实现多个对象之间的数据共享,并且使用静态数据成员还不会破坏隐藏的原则,即保证了安全性。因此,静态成员是类的所有对象中共享的成员,而不是某个对象的成员。

    使用静态数据成员可以节省内存,因为它是所有对象所公有的,因此,对多个对象来说,静态数据成员只存储一处,供所有对象共用。静态数据成员的值对每个对象都是一样,但它的值是可以更新的。只要对静态数据成员的值更新一次,保证所有对象存取更新后的相同的值,这样可以提高时间效率。

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

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

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

    <数据类型><类名>::<静态数据成员名>=<值> //静态变量的初始化

    这表明:

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

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

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

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

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

    <类名>::<静态成员名> //静态变量的使用方式

    如果静态数据成员的访问权限允许的话(即public的成员),可在程序中,按上述格式来引用静态数据成员。

    下面举一例子,说明静态数据成员的应用:

    class StaticTest
    {
    public:
        StaticTest(int a, int b, int c);
        void GetNumber();
        void GetSum();
        static void f1(StaticTest &s);
    private:
        int A, B, C;
        static int Sum;
    };
    
    
    
    #include "StaticTest.h"
    #include <iostream>
    using namespace std;
    
    int StaticTest::Sum = 0;//静态成员在此初始化
    
    StaticTest::StaticTest(int a, int b, int c)
    {
        A = a;
        B = b;
        C = c;
        Sum += A + B + C;
    }
    
    void StaticTest::GetNumber()
    {
        cout << "Number = " << endl;
    }
    
    void StaticTest::GetSum()
    {
        cout << "Sum = " << Sum <<endl;
    }
    
    void StaticTest::f1(StaticTest &s)
    {
        
        cout << s.A << endl;//静态方法不能直接调用一般成员,可以通过对象引用实现调用
        cout << Sum <<endl;
    }
    
    #include "StaticTest.h"
    #include <stdlib.h>
    
    
    int main(void)
    {
        StaticTest M(3, 7, 10), N(14, 9, 11);
        M.GetNumber();
        N.GetSum();
        M.GetNumber();
        N.GetSum();
        StaticTest::f1(M);
        system("pause");
        return 0;
    }
    
    展开全文
  • C++ 静态方法和静态属性

    千次阅读 2018-10-10 23:32:18
    来源:我的博客站 OceanicKang |《C++ 静态方法和静态属性》 #include &amp;amp;amp;amp;lt;iostream&amp;amp;amp;amp;gt; #include &amp;amp;amp;amp;lt;string&amp;amp;amp;amp;gt; class ...
  • C++ 静态 常量

    千次阅读 2017-06-06 11:24:38
    C++静态成员变量是用static修饰的成员变量,不属于对象的一部分,而是类一部分,因此可以在没有实例化任何对象的时候使用静态成员变量。但是必须初始化它。 由于静态变量只能被初始化一次,所以初始化成员变量不要...
  • C++静态成员

    千次阅读 2016-02-13 17:41:29
    C++静态数据成员 1.1静态数据成员是一种特殊的数据成员。static int height; 1.2静态数据成员可以通过类名来引用,也可以通过对象来引用。 1.3静态数据成员不属于某一个对象,静态数据成员的存储空间是在静态存储...
  • c++静态对象

    2014-12-02 23:00:09
    对静态对象不是很明白,可以看看,转载:c++静态对象初始化
  • C++静态成员与静态函数成员的理解

    万次阅读 2019-02-15 09:21:59
    我们为什么要使用C++静态成员?静态成员能为我们达到什么样的目的? 很多时候我们使用静态成员的目的,在于想让该类的所有对象共同维护一个或者某几个属性成员。即一个类的多个对象共同使用和维护某个(些)属性。 ...
  • C++静态成员和静态成员函数 从C++书上了解了C++的静态成员和静态成员函数,但不是很清楚有什么用,在网上搜了两篇大牛写的博客看了下, 下面是我的一些总结。 1.静态成员 C++的静态成员类似于全局变量,是在程序...
  • TscanCode C/C++静态分析

    2019-04-28 16:00:55
    TscanCode是腾讯静态分析团队开发的一款开源免费的C/C++静态分析工具,由于其比较简单实用,准确率较高,并且扫描C/C++代码不需要进行编译,对C/C++项目开发挺有帮助的,下面简单介绍一下该工具的安装与使用。...
  • 开源的C++静态分析工具
  • C++静态构造函数

    千次阅读 2019-02-21 23:42:28
    C++静态构造函数 如果数据成员被声明为static,那么它在编译时就必须被初始化。仅含static的则放在类之外,实现文件之中;同时含有const的则放在类之内,直接跟在数据的定义之后。 在实际代码编写中碰到的问题是:...
  • C++静态成员函数访问非静态成员的几种方法 文章目录C++静态成员函数访问非静态成员的几种方法方法一:方法二:方法三:方法四: 方法一: 有一个很取巧的办法,就是在静态函数的形参表里加上实例的地址,也就是 ...
  • C++静态成员变量和静态成员函数使用总结

    万次阅读 多人点赞 2016-05-16 09:11:58
    C++静态成员变量和静态成员函数使用总结: 一.静态成员变量:   类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/...
  • C++静态成员变量和静态成员函数

    千次阅读 2015-11-29 20:28:41
    C++静态成员变量和静态成员函数 数据成员可以分静态变量、非静态变量两种.  静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态...
  • C++静态常量探究

    千次阅读 2015-05-22 13:18:28
    c++静态常量详解。c++静态常量应用场景及使用方法。 今天想,如果我希望一个类中,具有一些常量,但是不希望常量在各个类的对象中有多份拷贝(占用不必要的内存)。想应该如何定义。 需求细化: 需求1、常量(可以是...
  • C++静态分析工具

    2014-02-12 11:35:44
    开源的C++静态分析工具 Java有一些非常好的、开源的静态分析工具,如FindBugs、Checkstyle和PMD。这些工具易于使用、有益于开发,能运行于多种操作系统而且还免费。  商业级的C++静态分析工具产品有Klocwork...
  • C++静态数据成员的继承

    千次阅读 2019-05-09 13:51:11
    C++静态数据成员的继承基类及其所有子类共用该基类的同一个静态成员变量测试代码:TestStatic.h:main.cpp: 基类及其所有子类共用该基类的同一个静态成员变量 真正理解:静态成员从属于类 测试代码: TestStatic.h...
  • 最近复习C++的一些知识,遇到了一个我比较容易混淆、傻傻分不清的知识点,那就是C++的变量的类型初始化或赋初值,大致有普通成员变量、静态成员变量、成员常量这三种,还有一种组合的静态成员常量。 看到这几种数据...
  • C++静态变量

    千次阅读 2019-09-11 11:41:36
    C++中,类的静态成员(static member)必须在类内声明,在类外初始化。 要注意的是,静态成员变量在类中仅仅是声明,没有定义,所以要在类的外面定义,实际上是给静态成员变量分配内存。初始化是...
  • C 链接 C++静态库的方法

    千次阅读 2018-03-13 09:45:23
    C 链接 C++静态库的方法 最近需要用到mp4v2开源库做H264和AAC的存储功能,由于mp4v2库为C++编写的,在使用过程中遇到C 链接C++ 静态库的问题,查找资料后发现很简单,只要链接时加上-lstdc++静态库即可: gcc -o ...
  • C++静态库与动态库的区别?

    万次阅读 多人点赞 2018-08-17 20:29:59
    C++静态库与动态库 这次分享的宗旨是——让大家学会创建与使用静态库、动态库,知道静态库与动态库的区别,知道使用的时候如何选择。这里不深入介绍静态库、动态库的底层格式,内存布局等,有兴趣的同学,推荐一本...
  • C++静态成员函数的一些特性
  • C++静态成员和函数

    2013-12-27 08:50:32
    C++静态成员函数 1. 静态成员函数不可以调用类的非静态成员。因为静态成员函数不含this指针。 2. 静态成员函数不可以同时声明为 virtual、const、volatile函数。 C++静态成员在Class中仅限声明,但没有定义,不能...
  • C++静态库和动态库用法

    千次阅读 多人点赞 2018-07-19 23:50:11
    从事软件工作也有两年了,C++静态库和动态库也用了不少,但都是依葫芦画瓢,一直没具体去研究一下二者的区别,加载方式等,今天花时间看了几篇博客,重新学习了一下,做出如下笔记。 2、定义 静态库和动态库从字面意思来...
  • C++静态成员注意事项

    2013-05-12 14:23:49
    C++静态成员注意事项 在日常的编程过程中,很多朋友对于C++静态成员注意事项不是很清楚,本文将介绍一下C++静态成员注意事项的内容。 C++这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读...
  • C++ 静态成员

    千次阅读 2017-04-26 09:39:55
    C++中,采用静态成员来解决同一个类的对象共享数据的问题。类的静态成员分为静态数据成员和静态成员函数。 1. 静态数据成员  静态数据成员在一个类中只分配一次存储空间,也就是一个类的所有对象的静态数据成员...
  • C语言调用C++静态

    千次阅读 2016-05-10 13:10:39
    生成C++静态库 hello.h文件 #ifndef HELLO_H #define HELLO_H#ifdef __cplusplus extern "C"{ #endif void hello(void); #ifdef __cplusplus }; #endifhello.cpp文件#include #include "hello.h" void hello() { ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,060
精华内容 16,424
关键字:

c++静态

c++ 订阅