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++基础知识,可以加群咨询