C++类内定义静态变量

C++类内定义静态变量只限定与integral类型,比如int、char、long、float、double都行,但是string不行

#include<iostream>
#include<string>
using namespace std;

class testClass
{
public:
    static const int _dataI = 2;
    static const long _dataL = 389l;
    static const char _dataC = 'A';
};

class testClass2
{
public:
    static int _a;
};
int testClass2::_a = 89;

class testClass3
{
public:
    static const float _dataF = 2.3;
    static const double _dataD = 389;
//    static const string _dataS = "CourageK"; // not integral members
};

int main()
{
    cout<<testClass::_dataI<<endl;
    cout<<testClass::_dataL<<endl;
    cout<<testClass::_dataC<<endl;

    cout<<testClass2::_a<<endl;

    cout<<testClass3::_dataF<<endl;
    cout<<testClass3::_dataD<<endl;

    return 0;
}

输出结果为:

2

389

A

89

2.3

389

时间: 2024-10-11 10:29:32

C++类内定义静态变量的相关文章

在成员函数内定义static变量

成员函数内的局部变量可以是static的.如果将成员函数内的某个局部变量定义为静态变量,该类的所有对象在调用这个成员函数时将共享这个变量. 例3-40   本例在成员函数m中定义了一个static变量s,由于s定义在程序块内,它拥有程序块范围,因此它只能在m内部访问.每调用m一次,s就会相应地增加一次.又因为m是C的成员函数,所以,C的所有对象都共享这个静态局部变量.这样,对m的每一次调用访问的都是同一个s.相反,对于非静态局部变量x来说,每个C对象都拥有一个x.所以,在main中第一次调用c1

类模板,多种类型的类模板,自定义类模板,类模板的默认类型,数组的模板实现,友元和类模板,友元函数,类模板与静态变量,类模板与普通类之间互相继承,类模板作为模板参数,类嵌套,类模板嵌套,类包装器

 1.第一个最简单的类模板案例 #include "mainwindow.h" #include <QApplication> #include <QPushButton> #include <QLabel> template<class T> class run { public: T w; void show() { w.show(); } void settext() { w.setText("A"); }

Kotlin定义静态变量、静态方法

Kotlin定义静态变量.静态方法kotlin定义静态变量.方法可以采用伴生对象companion object的方式. 经典例子,实例化Fragment. java写法: public class TestFragment extends Fragment { private static final String ARG_PARAM1 = "param1"; private static final String ARG_PARAM2 = "param2"; p

ES6 class类中定义私有变量

ES6 class类中定义私有变量 class类的不足 看起来, es6 中 class 的出现拉近了 JS 和传统 OOP 语言的距离.但是,它仅仅是一个语法糖罢了,不能实现传统 OOP 语言一样的功能.在其中,比较大的一个痛点就是私有变量问题. 何为私有变量?私有变量就是只能在类内部访问的变量,外部无法访问的变量.在开发中,很多变量或方法你不想其他人访问,可以定义为私有变量,防止被其他人使用.在 Java 中,可以使用 private 实现私有变量,但是可惜的是, JS 中并没有该功能. 来

C++11类内static成员变量声明与定义

众所周知,将一个类内的某个成员变量声明为static型,可以使得该类实例化得到的对象实现对象间数据共享. 在C++中,通常将一个类的声明写在头文件中,将这个类的具体定义(实现)写在cpp源文件中. 因此,就引出了static成员变量的声明与定义问题: 1. 如果一个类内成员变量是static的,且需要将之设定为常量(const),那么这个变量声明与初始化均可写在头文件内. 举个例子: 1 // Scanner.hpp 2 class Scanner { 3 public: 4 const sta

类内定义线程的回调函数问题

C++类成员函数使用时,都会隐式传递一个this指针给该函数,this指针指向该类的对象.函数体可以通过显示调用该指针或直接访问类内成员.      回调函数是用指针来调用的函数,最常使用的回调函数就是在创建线程时,以一个函数指针以及传递给这个函数多个参数来调用线程函数来创建线程.那么一般的类成员函数是不能用作回调函数的,因为库函数在使用回调函数时,都会传递指定的符合回调函数声明的的参数给回调函数,而类成员函数隐式包含一个this指针参数,所以把类成员函数当作回调函数编译时因为参数不匹配会出错.

4、 C++函数内的静态变量初始化以及线程安全问题

原文:https://www.cnblogs.com/zxjan/p/3538911.html 1. 如果是编译时和加载时初始化, 是不会存在线程安全这个issue的; 因为这两种初始化一定发生在Main函数执行之前, 这个时候尚未进入程序运行空间; 而这些初始化一定是在单线程环境下操作的!  --  都是在执行C Runtime的startup代码中的void mainCRTStartup(void)函数时所在的OS系统加载程序时的主线程空间上发生的! 2. 如果是运行时初始化, 因为无法保证

PHP -- 静态变量

一般的函数内变量在函数结束后会释放,比如局部变量,但是静态变量却不会.下次再调用这个函数的时候,该变量的值会保留下来. 静态的变量的基本用法 1. 在类中定义静态变量 [访问修饰符] static $变量名; 2. 如何访问静态变量 如果在类中访问 有两种方法 self::$静态变量名 , 类名::$静态变量名 如果在类外访问: 有一种方法 类名::$静态变量名 class Child{ public $name; //这里定义并初始化一个静态变量 $nums public static $nu

PHP 静态变量和静态方法

PHP静态变量静态变量(也叫类变量) 静态的变量的基本用法1.在类中定义静态变量形式:[访问修饰符] static $变量名;例;  //public static $nums=0;2.如何访问静态变量如果在类中访问  有两种方法    self::$静态变量名  ,  类名::$静态变量名如果在类外访问: 有一种方法    类名::$静态变量名 例程:提出一个问题:说,有一群小孩在玩堆雪人,不时有新的小孩加入,请问如何知道现在共有多少人在玩?请使用面向对象的思想,编写程序解决 [php] vi