因此,在大多数OOP语言中,静态变量也可以称为类变量,即它们的值在此类的所有实例之间共享.例如,在我的游戏中,我有一个Bullet由GreenBullet和扩展的类PinkBullet.我希望这些子类具有一个"类"或"静态"变量,ammo以便我可以跟踪该特定弹药类型的弹药计数.但这里有一个问题:我希望能够通过子类的实例访问此属性.
例:
var bullet: GreenBullet = new GreenBullet()
if (bullet.ammo <= 0)
return;
bullet.shoot();
bullet.ammo --;
Run Code Online (Sandbox Code Playgroud)
我希望所有实例都GreenBullet知道这些弹药数量的变化.
我最近开始使用C++类,刚刚遇到错误时就开始了.我有一个"resource.h"文件,其中包含两个类的类定义:'deck'和'card'.我把#include这个文件放在另一个文件"card.cpp"中.在card.cpp文件中,我描述了'card'类的所有方法/功能.但是在编译时我得到以下错误(fyi我使用MinGW编译器作为命令行):
card.cpp:3:29:错误:ISO C++禁止声明'setCard'没有类型[-fp ermissive] card.cpp:3:1:错误:原型为'int Card :: setCard(char,char)'在类'Card'资源中没有任何内容.:9:8:错误:候选者是:void Card :: setCard(char,char)
"card.cpp"文件:
#include "resource.h"
Card::setCard(char f, char s) {
face = f;
suit = s;
}
Card::Card (char face, char suit) {
setCard(face, suit);
}
Card::~Card () {}
Run Code Online (Sandbox Code Playgroud)
"resource.h"文件:
typedef unsigned short int UINT;
class Card;
class Deck;
class Card {
public:
Card(char face, char suit);
~Card();
void setCard(char face, char suit);
char getFace() const { return face; }
char getSuit() const { return suit; }
private:
char …Run Code Online (Sandbox Code Playgroud) 好吧,所以我创建了一个运行良好的C++ Win32程序.然后我想使用自定义图标,所以我创建了一个"resource.h"文件和一个"resource.rc"文件,我将#include它们都放在我的C++源文件中.但是在编译时我得到第3行的以下错误:
在数字常量之前预期的nonqualified-id
我究竟做错了什么?我忘记了什么吗?
我的resource.h文件:
#define IDI_MYICON 201
Run Code Online (Sandbox Code Playgroud)
我的resource.rc文件:
#include "resource.h"
IDI_MYICON ICON "star.ico"
Run Code Online (Sandbox Code Playgroud)
最后我的C++ Win32文件的前三行(有问题的那一行):
#include <windows.h>
#include "resource.h"
#include "resource.rc"
Run Code Online (Sandbox Code Playgroud)