- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在我的新工作中,我意识到迄今为止我实际使用的 C++ 技能是多么少。我现在正在努力完成一些 self 强加的 OOP 练习,并且被困在参差不齐的类(class)中。
代码如下:
#define CAT_ONE_COUNT 6
#define CAT_TWO_COUNT 7
#define CAT_THREE_COUNT 20
#define CAT_FOUR_COUNT 5
#define CAT_FIVE_COUNT 4
#define CAT_SIX_COUNT 20
enum {CAT_ONE, CAT_TWO, CAT_THREE, CAT_FOUR, CAT_FIVE};
class EntryList
{
private:
ScheduleEntry* catOne[CAT_ONE_COUNT];
ScheduleEntry* catTwo[CAT_TWO_COUNT];
ScheduleEntry* catThree[CAT_THREE_COUNT];
ScheduleEntry* catFour[CAT_FOUR_COUNT];
ScheduleEntry* catFive[CAT_FIVE_COUNT];
ScheduleEntry* catSix[CAT_SIX_COUNT];
ScheduleEntry** entries[];
public:
EntryList();
~EntryList();
std::string getEntry(int cat, int entry);
};
EntryList::EntryList()
{
catOne[0] = new ScheduleEntry("Pressups");
catOne[1] = new ScheduleEntry("Situps");
catOne[2] = new ScheduleEntry("Squats");
catOne[3] = new ScheduleEntry("Bench Work");
catOne[4] = new ScheduleEntry("Partner Versions");
catOne[5] = new ScheduleEntry("Running + Numbers");
entries[CAT_ONE] = &catOne;
}
显然,ScheduleEntry(和成员函数)在别处定义,我在尝试编译时遇到的错误如下:
gfi@testbox:~/test$ g++ -o test -std=c++0x main.cpp
In file included from main.cpp:6:
EntryList.h: In constructor ‘EntryList::EntryList()’:
EntryList.h:40: error: cannot convert ‘ScheduleEntry* (*)[6]’ to ‘ScheduleEntry**’ in assignment
在通读了我能找到的锯齿状数组之后,这是我能想到的实现它的最简单和最易读的方法。要事第一 - 是吗?有没有更简单的方法?
接下来(当然)是编译器错误。我怎么搞砸了打字?
提前致谢。 =)
编辑:
找到快乐的媒介。
#define CAT_ONE_COUNT 6
#define CAT_TWO_COUNT 7
#define CAT_THREE_COUNT 20
#define CAT_FOUR_COUNT 5
#define CAT_FIVE_COUNT 4
#define CAT_SIX_COUNT 20
enum {CAT_ONE, CAT_TWO, CAT_THREE, CAT_FOUR, CAT_FIVE};
class EntryList
{
private:
ScheduleEntry** entries[6];
public:
EntryList();
~EntryList();
std::string getEntry(int cat, int entry);
};
EntryList::EntryList()
{
entries[CAT_ONE] = new ScheduleEntry*[CAT_ONE_COUNT];
entries[CAT_ONE][0] = new ScheduleEntry("Pushup");
entries[CAT_ONE][1] = new ScheduleEntry("Situps");
entries[CAT_ONE][2] = new ScheduleEntry("Squats");
entries[CAT_ONE][3] = new ScheduleEntry("Bench Work");
entries[CAT_ONE][4] = new ScheduleEntry("Partner Versions");
entries[CAT_ONE][5] = new ScheduleEntry("Running + Numbers");
}
最佳答案
语法错误是:
entries[CAT_ONE] = &catOne; // Arrays are secretly pointers so this won't work
替换为:
entries[CAT_ONE] = catOne; // catOne is a ScheduleEntry* [], which is a ScheduleEntry**
你可能会逃脱这样的事情:
const int width = 6;
int height[width] = { 6, 7, 20, 5, 4, 20 };
ScheduleEntry*** entries = new (ScheduleEntry**)[width];
for (int i = 0; i < width; ++i) entries[i] = new (ScheduleEntry*)[height[i]];
entries[0][0] = new ScheduleEntry("Pressups");
entries[0][1] = new ScheduleEntry("Situps");
entries[0][2] = new ScheduleEntry("Squats");
entries[0][3] = new ScheduleEntry("Bench Work");
entries[0][4] = new ScheduleEntry("Partner Versions");
entries[0][5] = new ScheduleEntry("Running + Numbers");
// etc etc
关于c++ - 锯齿状的类数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11091996/
使用Cocos2d画一个更粗的圆: glLineWidth(20); ccDrawCircle(self.ripplePosition, _radius, 0, 50, NO); 但这就是显示的内容(
本学期我在计算机科学类(class)中遇到了一个挑战问题,这是上学期的复习题,但问题是:“给定一个参差不齐的数组,查找数组中是否有任何行的乘积为 48,如果是,则返回该行号。如果没有行包含 48 的乘
我一直在尝试将 sklearn 决策树中的 .dot 图插入到 pyplot 子图中,并且一直在努力做到这一点。 pygraphviz 库拒绝在我的 Windows 系统上工作,因此我使用以下方法插入
我有一个 UITableViewCell 子类,它有一些标签。所有这些标签都带有模糊或锯齿状的文本。它在设备上比在模拟器上更引人注目。 这是一个看起来很正常的标签: 这是一个看起来很糟糕的标签: 我该
作为LINQ-to-Entities投影的结果,我最终得到一个List,如果手动创建它,其外观如下所示: List data = new List(); data.Add(new ChartDataR
为什么我的css圈不流畅? 如果我做一个 HTML5 Canvas 真的很棒。 #circle { width: 100px; height: 100px;
我不明白 Numpy.arrays 相乘时会发生什么。 例如,带有锯齿状(或参差不齐)的数组 import numpy as np a = np.array([[1,2,3],[100,200]])
我正在尝试用 Python 计算时间序列的 Hurst 指数,该值决定了量化金融时间序列的一些均值回归特征。我采用了任意长度的时间序列,并选择将其拆分为数据 block ,该过程是计算 Hurst 指
我正在建立一个网站 - http://www.efficaxdevelopment.com 正如您在加载页面(在 IE 中)时看到的那样,页面上不是图像的文本或菜单看起来很糟糕,而在 FF 和 Chr
If you check, for instance, this shopping page ,您可以看到价格倾斜了几度。在 Chrome 上,这看起来“恰到好处”,在 Firefox 上,这看起来非
我是一名优秀的程序员,十分优秀!