作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
<分区>
Possible Duplicate:
Is no parentheses on a constructor with no arguments a language standard?
好吧,我有一个泡菜。这是一个错误 C2228 问题,我查看了其他问题和答案,但给出的提示似乎都不适合我 - 这是我的第一个问题,我是新手,所以请保持温柔!注意:如果我使用
,程序将编译Wizard wiz0;
但如果我使用则不会
Wizard wiz0();
我正在使用的书告诉我这两个陈述应该是等价的,所以我想弄清楚为什么我可以使用一个而不是另一个。
首先,这是我尝试使用 Wizard wiz0() 时的错误:
1> Chapter5.cpp
1>Chapter5.cpp(14): error C2228: left of '.fight' must have class/struct/union
1>Chapter5.cpp(15): error C2228: left of '.talk' must have class/struct/union
1>Chapter5.cpp(17): error C2228: left of '.setArmor' must have class/struct/union
1>Chapter5.cpp(19): error C2228: left of '.getName' must have class/struct/union
1>Chapter5.cpp(21): error C2228: left of '.castSpell' must have class/struct/union
这是(我认为的)Chapter5.cpp 中的相关代码是:
Wizard wiz0(); //declares a variable (wiz0) of type Wizard.
wiz0.fight();
wiz0.talk();
wiz0.setArmor(10);
cout << "Player's Name: " << wiz0.getName() << endl;
wiz0.castSpell();
此外,这是来自 wiz.h 文件的信息:
public
//Constructor
Wizard();
//Overloaded Constructor
Wizard(std::string name, int hp, int mp, int armor);
//Destructor
~Wizard();
//Methods
void fight();
void talk();
void castSpell();
void setArmor(int mArmor);
std::string Wizard::getName();
private:
//Data members
std::string mName;
int mHitPoints;
int mMagicPoints;
int mArmor;
...最后,来自 wiz.cpp 文件的信息!
//Wiz.cpp implementation file
#include "stdAfx.h"
#include "wiz.h"
using namespace std;
//The Constructor call
Wizard::Wizard()
{
/*If the client calls a constructor without
specifying values, these will be the default
values that the program will use */
mName = "DefaultName";
mHitPoints = 1;
mMagicPoints = 1;
mArmor = 0;
}
Wizard::Wizard(std::string name, int hp, int mp, int armor)
{
//Client called constructor WITH values, so create an
//object with them.
mName = name;
mHitPoints = hp;
mMagicPoints = mp;
mArmor = armor;
}
void Wizard::fight()
{
cout << "Fighting." << endl;
}
void Wizard::talk()
{
cout << "Talking." << endl;
}
void Wizard::castSpell()
{
if (mMagicPoints < 4)
cout << "Casting spell." << endl;
else
cout << "Not enough MP!" << endl;
}
void Wizard::setArmor(int armor)
{
if(armor >= 0)
mArmor = armor;
}
std::string Wizard::getName()
{
return mName;
}
Wizard::~Wizard()
{
//Not using dynamic memory- nothing to clean
}
呼...我想就这些了。如果你们能弄清楚我做错了什么,我将不胜感激!
当我访问 Google Drive 并检查网页时,我看到了很多标签。这些是什么?它们似乎用于我的用户特定内容(我拥有哪些文件)。我的浏览器如何知道如何渲染它? 最佳答案 这是谷歌多年前发明的一个 Ja
我有一个硬件系统,它使用来自 GroovyGameGear.com 的 LED Wiz 来控制运行 Windows Embedded 的系统前面的 LED。 GroovyGameGear 提供了一个
我正在尝试创建一个看起来有点像这样的页面: http://www.drmichaelbogdan.com/plastic-surgery/ (我指的是“了解更多关于我们的特色程序:”具有交替颜色的表格
我是一名优秀的程序员,十分优秀!