【发布时间】:2012-03-07 01:04:40
【问题描述】:
当我有多个 .cpp 文件时,我将如何制作像 java 中的静态方法一样使用的静态方法?
在 java 中,您可以使用 MyClass name = new MyClass(); 来引用另一个类。当在您拥有的任何其他文件中调用时,此类中的每个变量都将相同。
在你想在其中使用该类的每个函数中,必须能够通过引用 MyClass& 名称来传递我似乎很痛苦。
有没有办法在 .cpp 文件的顶部定义 MyClass 名称,而不会在内存中创建该对象的全新实例并擦除所有进度,例如,如果您尝试制作一个简单的计数器,主类会告诉计数类递增,可见性类会从计数类获取计数并将其打印到屏幕上。现在这很简单,因为您可以将计数类传递给可见性,但是如果您有 20 多个方法,那么很难跟踪。
我对静态或引用不太熟悉,我环顾四周并看到了“命名空间”,但我不确定我会在哪里定义它,或者它是否是我什至需要的。
提前致谢
示例 Java 代码:
public class Foo{
private static int counter = 0;
public int getCounter(){
return counter;
}
public void incrCounter(){
counter+=1;
}
}
public class MainProg{
public static void main(String[] args){
Foo foo = new Foo();
Display disp = new Display();
foo.incrCounter();
foo.incrCounter();
disp.displayCounter();
}
}
public class Display{
Foo foo = new Foo();
public void displayCounter(){
foo.incrCounter();
System.out.println(foo.getCounter());
}
}
这应该打印出“3”
【问题讨论】:
-
我想你会使用一个头文件。默认情况下,所有方法在 C++ 中都是“静态的”,除非它们包含在对象中。每个类不代表一个对象,但可以包含多个对象或零个对象。
-
我的类已经在使用头文件和 .cpp 文件,但我试图避免不断地绕过对象。
-
你应该真正说明你要解决的问题是什么,而不是语言的问题。很难确定你在担心什么,你需要一个全局变量吗?类的静态成员?你想访问什么?另请注意,您提供的 Java 代码与描述毫无意义...
-
在 Java 中,您可以访问任意多个其他类中的类,只要变量是静态的,您访问的类中的值将始终相同。我正在寻找一种在 C++ 中执行此操作的方法。
标签: c++ class reference static