C++ 静止的并不是一成不变的
我一直在做一个项目,我发现static关键字有时会有点混乱 我的项目使用图书馆的课程。我想做的是得到屏幕的高度,然后打印出来。一旦我的屏幕初始化,静态类(screen)应该始终具有相同的高度和宽度 下面是我一直尝试做的一个例子: 1.hpp级:C++ 静止的并不是一成不变的,c++,static,C++,Static,我一直在做一个项目,我发现static关键字有时会有点混乱 我的项目使用图书馆的课程。我想做的是得到屏幕的高度,然后打印出来。一旦我的屏幕初始化,静态类(screen)应该始终具有相同的高度和宽度 下面是我一直尝试做的一个例子: 1.hpp级: #ifndef CLASS_H #define CLASS_H #include <iostream> #include "screen.hpp" class Class{ public: Class(){
#ifndef CLASS_H
#define CLASS_H
#include <iostream>
#include "screen.hpp"
class Class{
public:
Class(){
std::cout << "Class: " << std::endl;
}
virtual ~Class(){}
};
#endif //CLASS_H
静电有什么我不懂的吗?我应该创建一个接口文件(带有名称空间接口)吗?请帮帮我
谢谢
Class classa(); //Will print the screen H in the constructor
它不能打印任何内容,因为它没有声明变量,因此不会调用构造函数。它声明一个不带参数的函数classa
,并返回Class
至于
静态的
,我在你引用的代码中没有看到任何静态的东西。你可以用它获得你想要的效果
static int w, h;
但你的想法似乎不止这些。是否允许一次存在多个
屏幕
?您想让类
之外的其他类(不要调用您的类类
)访问屏幕
?这可能是针对单例模式或嵌套类或其他对象的作业。没有所谓的“静态类”
您可以有一个类的静态实例
class Foo
{
};
static Foo my_foo_;
或者您可以在类中使用静态方法
class Foo
{
public:
static void Bar() {};
};
int main()
{
Foo::Bar();
}
我怀疑你实际上是想做的
请注意,为了获得此功能,您实际上必须使用关键字
static
,这在发布的示例中从未使用过 我一定错过了什么。我在你的代码中找不到static关键字……呃,你实际上并没有在任何地方使用static
,还有classa()
是一个函数声明。而且,类
构造函数不打印任何数字。关于静态
的问题根本没有静态
。投票以假问题结束。我想你的意思是它没有声明对象或实例,@jwismar:是的。那是个打字错误。
static int w, h;
class Foo
{
};
static Foo my_foo_;
class Foo
{
public:
static void Bar() {};
};
int main()
{
Foo::Bar();
}