小编Hea*_*iff的帖子

"对模板类构造函数的未定义引用

我不知道为什么会发生这种情况,因为我认为我已经正确地声明和定义了所有内容.

我有以下程序,使用模板设计.这是一个简单的队列实现,其成员函数为"add","substract"和"print".

我已经在精细的"nodo_colaypila.h"中为队列定义了节点:

#ifndef NODO_COLAYPILA_H
#define NODO_COLAYPILA_H

#include <iostream>

template <class T> class cola;

template <class T> class nodo_colaypila
{
        T elem;
        nodo_colaypila<T>* sig;
        friend class cola<T>;
    public:
        nodo_colaypila(T, nodo_colaypila<T>*);

};
Run Code Online (Sandbox Code Playgroud)

然后在"nodo_colaypila.cpp"中实现

#include "nodo_colaypila.h"
#include <iostream>

template <class T> nodo_colaypila<T>::nodo_colaypila(T a, nodo_colaypila<T>* siguiente = NULL)
{
    elem = a;
    sig = siguiente;//ctor
}
Run Code Online (Sandbox Code Playgroud)

然后,队列模板类的定义和声明及其功能:

"cola.h":

#ifndef COLA_H
#define COLA_H

#include "nodo_colaypila.h"

template <class T> class cola
{
        nodo_colaypila<T>* ult, pri;
    public:
        cola<T>();
        void anade(T&);
        T saca();
        void print() const;
        virtual …
Run Code Online (Sandbox Code Playgroud)

c++ templates compiler-errors codeblocks

136
推荐指数
3
解决办法
11万
查看次数

"警告:使用GCC和GDB(CodeBlocks)找不到值为XXX值的虚拟表的链接器符号"

我得到一个运行时错误("无法写入内存"),在通过调试器检查后,会导致警告.

标题如下:

componente.h:

#ifndef COMPONENTE_H
#define COMPONENTE_H

using namespace std;

class componente
{
        int num_piezas;
        int codigo;
        char* proovedor;
    public:
        componente();
        componente(int a, int b, const char* c);
        virtual ~componente();
        virtual void print();

};

#endif // COMPONENTE_H
Run Code Online (Sandbox Code Playgroud)

complement.h实现

#include "Componente.h"
#include <string.h>
#include <iostream>

componente::componente()
{
    num_piezas = 0;
    codigo = 0;
    strcpy(proovedor, "");
    //ctor
}

componente::componente(int a = 0, int b = 0, const char* c = "")
{
    num_piezas = a;
    codigo = b;
    strcpy(proovedor, "");
}

componente::~componente() …
Run Code Online (Sandbox Code Playgroud)

c++ gcc gdb virtual-functions

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

DatePicker选项"changemonth"和"changeyear"在jqGrid的编辑表单中不起作用

我已经定制了jqGrid的编辑表单,有一些字段使用jQuery的DatePicker来填充它们.我在colModel选项中按如下方式配置它:

colModel: [
...
    { name: 'Column', editable: true, index: 'Column', width: width,
      align: "center", editrules: { integer: true, required: true }, 
      editoptions: { size: 5, dataInit: function (el) {
                     setTimeout(function () { 
                           SetDatepicker('input[name^="' + el.name + '"]'); 
                     }, 100);                
                   } },
      formoptions: { rowpos: 1 }
    },
...
],
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为它在单击输入字段时部署DatePicker日历.

不是SetDatepicker函数如下所示:

function SetDatepicker(control) {
    $.datepicker.setDefaults($.datepicker.regional['es']);

    $(control).datepicker({
        changeMonth: true,
        changeYear: true,
        monthNamesShort: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"]
    });
}
Run Code Online (Sandbox Code Playgroud)

它将changeMonth和changeYear设置为true,因此DatePicker应在其标题中有两个选择,一个用于年份,一个用于年份,以及箭头沿手动移动日历.问题是,无法显示选择选项:它们对鼠标点击没有反应.它们可以使用箭头,因此您可以一次向前和向后移动一个月,但使用这些选项的想法并非必须这样做.

我在jqGrid的编辑表单之外有另一个字段,它也使用相同的函数连接到它的DatePicker.它工作正常,这让我觉得问题在于jqGrid的事件处理.

有任何想法吗?

谢谢 …

jquery jquery-ui jqgrid

5
推荐指数
2
解决办法
8759
查看次数

性能:多个条件 WHERE 子句,还是动态查询?

我有以下问题。我必须对带有多个过滤器的非常大的表进行查询。这些过滤器不是强制性的:也就是说,有时查询必须使用某个过滤器(例如,在 ColumnA 上),有时则不需要。这些过滤器作为参数传递给存储过程(例如,@filterA,用于 ColumnA)。

假设可能的过滤器在 ColumnA、ColumnB、ColumnC 和 ColumnD 上(并且过滤它们的值是 @filterA、...、@filterD)。如果我不需要应用特定过滤器,则参数将作为 NULL 传递。目前,我正在考虑使用“条件”WHERE 子句做这样的事情:

SELECT *
FROM LargeTable
WHERE (@filterA IS NULL OR ColumnA = @filterA)
  AND (@filterB IS NULL OR ColumnB = @filterB)
  AND (@filterC IS NULL OR ColumnC = @filterC)
  AND (@filterD IS NULL OR ColumnD = @filterD)
Run Code Online (Sandbox Code Playgroud)

这是一种可能性,但我想知道它的性能如何,因为我将在每种情况下都应用所有这些 WHERE 子句,并且该表非常大。

使用动态查询是否更可取,只有当我确实必须使用它时,我才会应用特定的 WHERE 子句?像这样的东西:

DECLARE @query varchar(MAX)
SET @query = 'SELECT * FROM LargeTable WHERE ';
IF @filterA IS NOT NULL
BEGIN
   SET @query = CONCAT(@query, 'ColumnA …
Run Code Online (Sandbox Code Playgroud)

sql sql-server

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

Chrome 和 Edge 在选中时以不同的方式处理设置为“不确定”的复选框

注意:我使用 jQuery 访问 DOM 元素,但使用纯 JavaScript 将事件分配给它,所以我怀疑 jQuery 与它有什么关系

检查这个jsFiddle

$(document).ready(function() {
  $('input')[0].indeterminate = true;
  $('input')[0].addEventListener("click", function(event) {
    console.log(event.target.checked)
    alert("Check is: " + event.target.checked);
  })
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" checked>
Run Code Online (Sandbox Code Playgroud)

如果您在 Chrome 上打开它并单击复选框,警报消息会显示“Check is: false”,而如果您在 Microsoft Edge 上打开它并单击复选框,消息会显示“Check is: true”,这意味着状态的check与浏览器性能的变化。

我尝试将checked属性与属性一起设置indeterminate,看看我是否强制它以相同的方式对待它,但结果是相同的

$(document).ready(function() {
  $('input')[0].indeterminate = true;
  $('input')[0].checked = false;

  $('input')[0].addEventListener("click", function(event) {
    console.log(event.target.checked)
    alert("Check is: " + event.target.checked);
  })
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" checked>
Run Code Online (Sandbox Code Playgroud)

这是 …

javascript internet-explorer google-chrome

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

Typescript/Jest 无法识别 Web Workers

我正在尝试将 Web Workers 与 Typescript 一起使用。我有一个具有以下结构的项目:

__tests__
|
| test.ts
--- 
src
|
| something.ts
| someelse.ts
--- 
jest.config.js
package.json
tsconfig.json
Run Code Online (Sandbox Code Playgroud)

配置文件

{ 
  "compileOnSave": true,
  "compilerOptions": {
    "module": "commonjs",
    "esModuleInterop": true,
    "target": "es6",
    "noImplicitAny": false,
    "moduleResolution": "node",
    "sourceMap": true,
    "outDir": "dist",
    "baseUrl": ".",
    "lib": ["webworker", "es2015", "scripthost"]
  },
  "exclude": [
    "node_modules"
  ]
}
Run Code Online (Sandbox Code Playgroud)

包.json

{
  "name": "test-ts",
  "version": "1.0.0",
  "main": "main.ts",
  "scripts": {
    "test": "jest"
  },
  "author": "",
  "dependencies": {
    "@types/node": "^13.1.0",
    "awesome-typescript-loader": "^5.2.1",
    "typescript": "^3.7.4",
    "webpack": "^4.41.4",
    "worker-loader": "^2.0.0" …
Run Code Online (Sandbox Code Playgroud)

javascript web-worker typescript jestjs

5
推荐指数
0
解决办法
419
查看次数

SQL 更改自动化的 VS2019 错误:“不支持关键字:'多个活动结果集'”

我根本不知道这个错误来自哪里。我已经在 VS2019 中设置了 SQL Change Automation,并开始为我拥有的每个 .sqlproj 解决方案获取这些错误。错误在 .sqlproj 文件中被标记,但没有给出任何一行。

我也没有在 .sqlproj 文件中找到这些词,也没有“MultipleActiveResultSets”。我在 .sqlproj.users 文件中也没有它们。

有谁知道这是否是 SQL 更改自动化的已知错误?

visual-studio readyroll visual-studio-2019

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

ASP MVC 3控制器动作未接收到所有参数

所以我有一个类似的观点:

...
<input type="text" id="FieldOne" />
<input type="text" id="FieldTwo" />
<input type="text" id="FieldThree" />
...
Run Code Online (Sandbox Code Playgroud)

这模仿这个类:

public class Foo{
    public string FieldOne { get; set; }
    public string FieldTwo { get; set; }
    public string FieldThree { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

并在相应的控制器中执行操作:

[HttpPost]
public ActionResult View(Foo param)
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

当我提交表单时,Post动作中的参数"param"会正确复制与该类匹配的所有字段的值,但其中一个(例如,FieldOne)除外.这些输入由Html.TextboxFor()生成.

这是一个特殊的问题还是我可能会忘记的?

c# asp.net-mvc razor

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

LINQ:多个JOINS没有使用点符号的长最终匿名变量

我有一个使用点符号的Linq查询,它必须与几个不同的枚举进行连接.我发现进行多重连接的方法是一个接一个地执行:而不是相当于以下SQL语句的东西:

SELECT
   blah blah blah
FROM
   tableOne as One, tableTwo as Two, tableThree as Three
WHERE
   One.fieldOne == Two.fieldOne AND
   One.fieldTwo == Three.fieldTwo AND
   One.fieldThree == something
Run Code Online (Sandbox Code Playgroud)

它最终会像:

SELECT
    blah blah blah
FROM
    (
      SELECT 
          blah blah blah
      FROM
          tableOne as One, tableTwo as Two
      WHERE
          One.fieldOne == Two.fieldOne
          One.fieldThree == something
    ) as firstJoin,
    tableThree as Three
WHERE
    firstJoin.fieldTwo == Three.fieldTwo
Run Code Online (Sandbox Code Playgroud)

Linq中的.Join()看起来像:

localTableOne.Join(localTableTwo,
                   One => One.fieldOne,
                   Two => Two.fieldOne,
                   (One, Two) => new { One, Two })
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,一旦我进入第二个JOIN,前一个JOIN结果的结果的匿名变量没有属性"fieldOne"或"fieldTwo"或本地表的任何字段都加入.它有一个属性"One",它具有第一个表中的属性,以及属性"Two",具有表2中的属性.因此,如果我想将这些结果与另一个表连接,则内部的lambda函数表看起来像

firstJoinResult …
Run Code Online (Sandbox Code Playgroud)

c# linq

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