读书人

C++跟java中的static是不是涵义差不多

发布时间: 2012-10-18 13:46:56 作者: rapoo

C++和java中的static是不是涵义差不多?
举个例子:
C++中public:
static int a = 100;
java中
public static int a = 100;

他们的功能是不是相同?我一直怀疑C++中的static和C中的类似,即控制访问域,不能被外部文件访问。

麻烦知道的告诉一下,本人C++小菜,JAVA还行!

[解决办法]
想了想,不咬文嚼字的话,好像是可以这样解释,静态的。
不过C++中定义和声明得分开,且定义的时候不能加static,否则还是会被解释成“控制访问域”的
[解决办法]
1 C++的那个声明,要么需要加入const修饰符,要么把=100去掉。

前者声明a是个静态常量,compiler可能会做替换处理。
后者声明a是个静态变量,需要在编译单元中进行定义,比如

int SomeClass::a;

这一点java就不需要,因为它是纯OOP语言——一切都是对象,类提供默认多态性,而C++是提供了多种编程范式的混血语言。


2 假设第一点情况下a是指后者,从应用角度看,二者差不多,都是class级的变量。使用的时候都是用class进行绑定,区别只是语法上的

C++

SomeClass::a
SomeClassObject.a
SomeClassObjectPtr->a

Java

SomeClass.a



[解决办法]
Java 继承自 C++。
除了显式的指针,所有东西基本是一个思想。
[解决办法]
基本上一样,java不能多继承,不能指针,思想上都差不多了

C++编程思想群:15376895,本人10年C++开发经验,现在正在开一个C++培训班,学员如果具有C++基础知识,可以加群咨询

读书人网 >C++

热点推荐