小编Lig*_*ica的帖子

如何通过两次mysql结果?

无论出于何种原因,我需要两次通过mysql结果集.有办法吗?我不想两次运行查询,我不想重写脚本,以便将行存储在某处,然后再重新使用它们.

php mysql

60
推荐指数
3
解决办法
5万
查看次数

函数名前的星号功能是什么?

我对大多数对我来说都不熟悉的函数声明的C程序感到困惑.

void *func_name(void *param){
    ...
}
Run Code Online (Sandbox Code Playgroud)

什么*意味着这个功能?我对*变量类型中的()的理解是它创建了一个指向另一个变量的指针,因此它能够跟踪后一个变量存储在内存中的地址.但在这个函数的情况下,我不知道这个*星号是什么意思.

c pointers function

60
推荐指数
4
解决办法
3万
查看次数

纯虚函数可能没有内联定义.为什么?

纯虚函数是那些虚拟的成员函数,具有pure-specifier(= 0;)

C++ 03第10.4条第2款告诉我们抽象类是什么,作为旁注,以下内容:

[注意:函数声明不能​​同时提供纯指定符和定义-end note] [示例:

struct C {
virtual void f() = 0 { }; // ill-formed
};
Run Code Online (Sandbox Code Playgroud)

- 末端的例子]

对于那些不太熟悉这个问题的人,请注意纯虚函数可以有定义,但上面提到的条款禁止这些定义以内联方式出现(lexically in-class).(对于定义纯虚函数的用法,您可能会看到,例如,这个GotW)

现在,对于所有其他类型和类型的函数,它被允许提供类内定义,并且这种限制乍一看似乎绝对是人为的和莫名其妙的.想到这一点,它似乎在第二次和随后的一瞥:)但我相信如果没有具体原因那么限制将不存在.

我的问题是:有人知道这些具体原因吗?也欢迎良好的猜测.

笔记:

  • MSVC确实允许PVF具有内联定义.所以不要惊讶:)
  • inline此问题中的单词未引用内联关键字.它应该是词汇上的词汇

c++ pure-virtual language-lawyer

59
推荐指数
3
解决办法
5342
查看次数

有什么理由不总是使用关键字参数?

在进入python之前,我开始使用一些Objective-C/Cocoa书籍.我记得,大多数函数都需要明确说明关键字参数.直到最近我才忘记了这一切,并在Python中使用了位置参数.但是最近,我遇到了一些由不正当的职位造成的错误 - 他们是偷偷摸摸的小东西.

让我思考 - 一般来说,除非有特殊需要非关键字参数的情况 - 有没有什么好的理由不使用关键字参数?即使是简单的功能,它总是被认为是不好的风格吗?

我觉得我的大多数50行程序已经定期扩展到500行或更多行,如果我习惯于总是使用关键字参数,那么随着代码的增长,代码将更易于阅读和维护.这可能不是这样的原因吗?

更新:

我得到的总体印象是它的风格偏好,有许多好的参数,它们通常不应该用于非常简单的参数,但在其他方面与良好的风格一致.在接受之前我只是想澄清一下 - 这种方法是否存在任何特定的非风格问题 - 例如,重要的性能命中?

python coding-style

58
推荐指数
5
解决办法
7322
查看次数

如何从基类公开继承,但在派生类中从基类私有一些公共方法?

例如,class Base有两个公共方法:foo()bar().类Derived继承自类Base.在课堂上Derived,我想foo()公开但bar()私下.以下代码是正确和自然的方式吗?

class Base {
   public:
     void foo();
     void bar();
};

class Derived : public Base {
   private:
     void bar();
};
Run Code Online (Sandbox Code Playgroud)

c++

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

从一个表中选择不在另一个表中

我试图找到一个表而不是另一个表中的行,两个表都在不同的数据库中,并且在我用来匹配的列上也有不同的列名.

我有一个查询,下面的代码,我认为它可能有效,但它太慢了:

SELECT `pm`.`id`
FROM `R2R`.`partmaster` `pm`
WHERE NOT EXISTS (
    SELECT * 
    FROM `wpsapi4`.`product_details` `pd`
    WHERE `pm`.`id` = `pd`.`part_num`
)
Run Code Online (Sandbox Code Playgroud)

所以查询尝试执行如下操作:

从R2R.partmaster数据库中选择不在wpsapi4.product_details数据库中的所有ID.我匹配的列是partmaster.id和product_details.part_num

mysql sql

56
推荐指数
3
解决办法
9万
查看次数

从文件名中删除扩展名的简便方法?

我试图从参数传递的文件名中获取没有扩展名的原始文件名:

int main ( int argc, char *argv[] )
{
    // Check to make sure there is a single argument
    if ( argc != 2 )
    {
        cout<<"usage: "<< argv[0] <<" <filename>\n";
        return 1;
    }

    // Remove the extension if it was supplied from argv[1] -- pseudocode
    char* filename = removeExtension(argv[1]);

    cout << filename;

}
Run Code Online (Sandbox Code Playgroud)

例如,当我传入"test.dat"时,文件名应为"test".

c++

55
推荐指数
7
解决办法
6万
查看次数

"匿名结构"标准吗?而且,真的,他们是什么?

MSDN 认为匿名结构在C++中是非标准的:

Microsoft C扩展允许您在另一个结构中声明结构变量而不为其指定名称.这些嵌套结构称为匿名结构.C++不允许匿名结构.

您可以访问匿名结构的成员,就好像它们是包含结构中的成员一样.

@ K-ballo同意.

我被告知这个功能不一定只是创建一个未命名的结构,但我不能看到标准措辞的区别.

C++ 11说:

[C++11: 9/1]:[..]一个类说明符,类头省略了class-head-name,定义了一个未命名的类.

并为缺少名称的类型定义提供完整的语法结构.

C++ 03缺少这种明确的措辞,但同样表明identifier类型定义中的类型是可选的,并在9.4.2/5和中引用了"未命名的类" 3.5/4.

  • 那么MSDN是错的,这些东西都是完全标准的吗?
  • 或者在"未命名的结构/类"之间是否存在一些微妙之处,并且当用作成员时它们会被这个C++ 03/C++ 11功能覆盖?
  • 我错过了"unnamed struct"和"anonymous struct"之间的一些根本区别吗?它们看起来像我的同义词.

c++

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

"解除引用类型惩罚指针将破坏严格别名规则"警告

我使用一个代码,我将枚举*转换为int*.像这样的东西:

enum foo { ... }
...
foo foobar;
int *pi = reinterpret_cast<int*>(&foobar);
Run Code Online (Sandbox Code Playgroud)

在编译代码(g ++ 4.1.2)时,我收到以下警告消息:

dereferencing type-punned pointer will break strict-aliasing rules
Run Code Online (Sandbox Code Playgroud)

我用Google搜索了这条消息,发现只有在严格的别名优化打开时才会发生这种情况.我有以下问题:

  • 如果我留下带有此警告的代码,它是否会生成可能错误的代码?
  • 有没有办法解决这个问题?
  • 如果没有,是否可以从源文件内部关闭严格别名(因为我不想为所有源文件关闭它,我不想为此源文件制作单独的Makefile规则)?

是的,我实际上需要这种别名.

c++ warnings strict-aliasing

53
推荐指数
4
解决办法
5万
查看次数

如何确定文件,功能和行号?

在C++中,我可以像这样打印调试输出:

printf(
   "FILE: %s, FUNC: %s, LINE: %d, LOG: %s\n",
   __FILE__,
   __FUNCTION__,
   __LINE__,
   logmessage
);
Run Code Online (Sandbox Code Playgroud)

我怎样才能在Python中做类似的事情?

python

53
推荐指数
6
解决办法
3万
查看次数