问题列表 - 第45525页

包括嵌套类

我有一个带有几个迭代器的容器类作为嵌套类.结构是这样的:

class Grid
{
protected:
    class Iterator
    {
        Iterator(Grid* g) : grid(g){}
        Grid* grid;
    }
    class MoreIterator : public Iterator
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我想将迭代器移动到自己的头文件中,以清理容器代码.

class Grid
{
protected:
#include "griditerators.h"
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,这编译没有错误.但:

在QtCreator中排队

Iterator(Grid* g) : grid(g){}
Grid* grid;
Run Code Online (Sandbox Code Playgroud)

被标记为错误,告诉我"网格不是类型名称".

我以为我可以通过griditerator.h文件中的前向声明来解决这个问题:

class Grid;
class Iterator
{
    Iterator(Grid* g) : grid(g){}
    Grid* grid;
}
Run Code Online (Sandbox Code Playgroud)

但这给了我一个编译错误:类Grid与声明它的类具有相同的名称.

用#include"grid.h"替换前向声明.但我不知何故认为这很难看.

所以我有两个工作选择.一个显示我的IDE中的丑陋错误,另一个我不喜欢那么多.

我尝试了其他变体,其中include不在封闭类中,但由于不同的原因而无法编译.

所以我的问题是:是否有任何"最佳实践"或包含模式来处理太大而无法将它们保存在封闭类文件中的嵌套类?

例如,有没有办法声明一个嵌套类,如:

class Grid::Iterator
Run Code Online (Sandbox Code Playgroud)

c++ nested-class

1
推荐指数
1
解决办法
1940
查看次数

json结果未定义

我用json结果回调jquery ajax调用结果如下:

function (data) {
            alert(data);
            alert(data['169874']);
}
Run Code Online (Sandbox Code Playgroud)

和:

alert(data) shows: {"169874":"123"}
Run Code Online (Sandbox Code Playgroud)

但:

alert(data['169874']) shows undefined.
Run Code Online (Sandbox Code Playgroud)

为什么不定义?

jquery

2
推荐指数
1
解决办法
3085
查看次数

字母等级功能

我是python的新手,我需要编写一个函数,它取一个字母等级(a,b,c,d,f,可能带有+或 - )并返回一个数字等级.值为4,3,2,1,0.因此A将是4.0,B将是3.0.A +将数字等级值增加0.3,A-将数字等级减少0.3.应该可以使用大小写的.一些例子.

>>> letter2number('A-')
3.7

>>> letter2number('B+')
3.3

>>> letter2number('D')
1.0

>>> letter2number('a+')
4.3
Run Code Online (Sandbox Code Playgroud)

我不知道从哪里开始编码,我一直在寻找一些有用的代码.

python new-operator

2
推荐指数
1
解决办法
2601
查看次数

获取QImage中的鼠标位置

我需要获取鼠标当前悬停的QImage的坐标.就像在图像编辑程序中一样,我们可以看到鼠标当前悬停的像素坐标.

c++ qt mouseevent qimage

2
推荐指数
1
解决办法
1570
查看次数

将DataTable从一个DataSet复制到另一个DataSet

我正在尝试向一个新的DataSet X添加一个DataTable,它位于不同的DataSet Y中.如果我直接添加它,我会收到以下错误:

DataTable已经属于另一个DataSet.

我是否必须克隆DataTable并将所有行导入其中,然后将新的DataTable添加到新的DataSet中?有没有更好/更简单的方法呢?

c# datatable dataset

23
推荐指数
1
解决办法
9万
查看次数

PostgreSQL COPY命令中动态生成的表名

这个PostgreSQL COPY命令有效:

copy tablename from E'c:\\abc\\a.txt';
Run Code Online (Sandbox Code Playgroud)

但我希望动态生成tablename.我怎样才能做到这一点?

postgresql plpgsql

6
推荐指数
1
解决办法
9224
查看次数

LINQ使用C#问题

我有一个List<T>包含一些用户定义的类数据.

我想找到2个数据字段组合的唯一实例.

例如,如果条目包含字段名称和年龄,我希望名称和年龄组合的唯一案例,例如Darren 32,只应检索一次,即使它在列表中多次.

这可以用LINQ实现吗?

谢谢.

c# linq

5
推荐指数
1
解决办法
220
查看次数

是否可以像DLL一样动态链接lib?

这是面试问题.

是否可以像DLL一样动态链接lib?

例如,对于DLL,我们使用LoadLibrary并调用导出的函数.是否可以以相同的方式使用lib文件?

c++ static-libraries

3
推荐指数
1
解决办法
265
查看次数

MySQL选择日期范围问题

大家好.我在我的SQL查询中使用BETWEEN得到了一些奇怪的结果,我想知道是否有人可以帮助我理解为什么我得到了我得到的结果.

我正在以dd/mm/yyyy的格式搜索日期范围.所以我想选择某个日期范围内的所有条目.

$dbSearchRecords_result = "SELECT * FROM $tbl_name WHERE Date BETWEEN '$DateFrom_order' AND '$DateTo_order'";

$dbSearchRecords_result = mysql_query($dbSearchRecords_result);
Run Code Online (Sandbox Code Playgroud)

然后我在一个数组的while语句中调用结果

while ($row = mysql_fetch_array($dbSearchRecords_result)){
Run Code Online (Sandbox Code Playgroud)

现在如果我搜索BETWEEN 12/02/2011 14/02/2011,那么从2010年12月13日起返回日期.

然而,如果我搜索12/02/2011 13/02/201我没有得到13/12/2010的结果.

任何想法都将非常感激.

干杯.

mysql

4
推荐指数
2
解决办法
7924
查看次数

将Visual Studio功能列表下拉到代码顺序而不是字母顺序

同事已经提出这个问题而我们无法找到它 - 关于这个可能值得问的机会.

在您可能拥有的文件中:

void BFunction()

void AFunction()

void CFunction()
Run Code Online (Sandbox Code Playgroud)

现在在函数列表下拉列表中,它将按字母顺序对它们进行排序:

AFunction
BFunction
CFunction
Run Code Online (Sandbox Code Playgroud)

实际上,我更喜欢这种方式.但是我的同事想知道你是否可以将下拉按照函数在代码中出现的顺序排序,这样在下拉列表中它也是:

BFunction
AFunction
CFunction
Run Code Online (Sandbox Code Playgroud)

有什么建议?

intellisense visual-studio-2010 visual-studio-2008 visual-studio

7
推荐指数
1
解决办法
4085
查看次数