C++静态变量本身可否是一个实例对象

一般书上总是用int来举例,那个太简单。如果静态变量本身可否是一个实例对象呢?应该是可以,但是这样涉及到它的构造函数以及它内部的静态变量如何初始化两个问题,换而言之,这个静态变量本身应该如何初始化?这个问题和单例模式有些关系,回头查查。

以下是一个不成熟的例子,但是能编译运行通过。

#include "stdafx.h"

#include <iostream>
using namespace std;

class AAA
{
public:
    static int sss;
    int ddd;
};
int AAA::sss = 20;

class myClass
{
public:
    static AAA* a;
    static AAA bbb;
    myClass()
    {
    }
};
AAA* myClass::a = new AAA();
//int (myClass::a)->sss = 20; 

int main()
{
       cout << myClass::a->sss;
       getchar();
       return 0;
}  
时间: 2024-08-06 22:23:03

C++静态变量本身可否是一个实例对象的相关文章

无法把指针变量本身传递给一个函数

例1: #include<stdio.h> #include<stdlib.h> void fun(char*p) { char c = p[3];//或者是char c=*(p+3); } int main() { char*p2 = "abcdefg"; fun(p2); system("pause"); return 0; } 错误,因为无法把指针变量本身传递给一个函数 应该对实参做一份拷贝并传递给被调用函数,即对p2做一份拷贝,假设其

java类内存中只能运行一个实例对象

方法:构造方法私有化(private) public class TestClass { private static TestClass obj = new TestClass (); //私有构造方法 private TestClass () { } public static TestClass getInstance() { return obj ; } } 使用: TestClass obj = TestClass.getInstance();

实例/静态变量、局部变量和常量的定义及其作用域

实例变量属于类的某个特定实例,静态变量属于类,因为它们的作用域在整个类中都是可用的,所以也被称为全局变量.在类中定义实例变量或静态变量时,可以放在任何位置.但为了美观规范,设计类时最好统一放在类中的最前面. public class Testvariable { int a; //实例变量 static int b; //静态变量 //不能声明后,单独赋值 a = 5; //error b = 5; //error } 因为不符合语法规则, 赋值语句这个操作要放在语句块中才能执行.但可以声明变量

静态变量与实例变量的区别

语法定义上区别:被static修饰的变量称为静态变量或者类变量.没有被static修饰的对象称为实例变量  程序运行上区别:只有创建实例对象后,其中的实例变量才会被分配空间,才能使用这个实例变量.但是静态变量不属于不属于某个实例对象,而是属于类,所以也称类变量.只要程序加载了类的字节码,不用创建任何的实例对象,静态变量就会被分配空间,就可以被使用了.总的来说,实例变量必须创建对象后才可以通过这个对象来使用,而静态变量则可以直接通过使用类名来使用! 举个例子: public  class Test

Java中静态变量(类变量)、实例变量、局部变量和成员变量

导读 学习Java的过程中,一开始很容易被这些各种变量绕晕,这篇博客主要介绍了这几种变量之间的关系和区别. 例程 package com.cunyu.demo public class Demo { private String name; //成员变量.实例变量 private int age; //成员变量.实例变量 private int ID; //成员变量.实例变量 public static final String school = "卡塞尔学院"; //成员变量.静态变

静态变量和实例变量的区别?

语法区别:静态变量需要static关键字修饰,实例变量不需要. 程序运行时的区别:静态变量从属于类,实例变量从属于对象. 实例变量必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量: 静态变量即类别量,只要程序加载了类的字节码,静态变量就会被分配空间,即可使用. 综上,实例变量必须创建对象后通过这个对象来使用,静态变量可以直接使用类名来引用.

PHP的类中的常量,静态变量的问题。

自己在写一个小型的 angularJS 库的时候,觉得 javascript 中的很多概念有点像是PHP中的概念. 像类常量, 类中的静态变量(类的静态变量是类的所有实例都共享的),这些概念虽然在 javascript 中没有明确提出来,但是其实都是可以通过 javascript 本身的语法特性来实现的. 下面是PHP类中类常量,类的静态变量的简单用法,看代码: <?php class A{ const NUMBER=12; public static $age = 12; public $na

关于Java的静态:静态类、静态方法、静态变量、静态块等

原文地址:Java static keyword - Class, Method, Variable, Block, import - JournalDev 很少看到文章能把静态这个问题解释的很清楚,有些文章绕来绕去很复杂.这篇解释静态问题的小文通透而容易理解.所以我把它翻译一下,让大家能好好理解关于静态. 其实对于Java静态的引入,考虑目标是使用和运行的便捷,不需要再实例化,特别是一些工具性质的代码段.当不用再实例化时,就可以相当于直接使用,增加了公共代码复用的便捷性. 从Java8开始,还

私有静态变量

(function(){           var name=10;           Person=function(){}; Person.prototype.sayName=function(){ alert(name+5); }; var friend = new Person();//创建一个实例对象 friend.sayName(); //15 搜索到的是原型对象的sayName方法 })(); (function( ){...})( );在函数内部的一个作用域内 Person前