小编Lig*_*ica的帖子

编译器抱怨我的默认参数?

我从这段代码中遇到了麻烦,在我从main.cpp文件中取出这个类并将其拆分为.h和.cpp后,编译器开始抱怨我在void中使用的默认参数.

/* PBASE.H */
    class pBase : public sf::Thread {
private:
    bool Running;

public:
    sf::Mutex Mutex;
    WORD OriginalColor;
    pBase(){
        Launch();
        Running = true;
        OriginalColor = 0x7;
    }
    void progressBar(int , int);
    bool key_pressed();
    void setColor( int );
    void setTitle( LPCWSTR );
    bool test_connection(){
        if(Running == false){
            return 0;
        }
        else{
            return 1;
        }
    return 0;
    }
    void Stop(){
        Running = false;
        if(Running == false) Wait();
    }
};
Run Code Online (Sandbox Code Playgroud)
    /* PBASE.CPP */

    // ... other stuff above

    void pBase::setColor( int _color = …
Run Code Online (Sandbox Code Playgroud)

c++ class optional-parameters

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

jQuery将$(this)传递给函数

我有这样的代码行:

$(this).parent().parent().children().each(function(){
    // do something
});
Run Code Online (Sandbox Code Playgroud)

它运作良好.但我需要多次运行这些行.所以我创建了一个函数并将$(this)参数传递给函数:

myFunc( $(this) );

function myFunc(thisObj) {
    thisObj.parent().parent().children().each(function(){
        // do something
    });
}
Run Code Online (Sandbox Code Playgroud)

但就这样,它没有用.

jquery this parameter-passing

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

如何以UTF-8格式写文件?

我有一堆不是UTF-8编码的文件,我正在将一个站点转换为UTF-8编码.

我正在使用简单的脚本来保存我想要保存在utf-8中的文件,但文件以旧编码保存:

header('Content-type: text/html; charset=utf-8');
mb_internal_encoding('UTF-8');
$fpath="folder";
$d=dir($fpath);
while (False !== ($a = $d->read()))
 {

 if ($a != '.' and $a != '..')
  {

  $npath=$fpath.'/'.$a;

  $data=file_get_contents($npath);

  file_put_contents('tempfolder/'.$a, $data);

  }

 }
Run Code Online (Sandbox Code Playgroud)

如何以utf-8编码保存文件?

php encoding utf-8 iconv mbstring

45
推荐指数
4
解决办法
14万
查看次数

如何仅使用boost将字符串编码为base64?

我正在尝试快速编码一个简单的ASCII字符串到base64(使用boost :: asio的基本HTTP身份验证),而不是粘贴任何新的代码代码或使用除boost之外的任何库.

简单签名看起来像: string Base64Encode(const string&text);

我再次意识到算法很简单,并且有许多库/示例正在执行此操作,但我正在寻找一个干净的增强示例.我发现了boost序列化,但没有明确的例子,也没有谷歌. http://www.boost.org/doc/libs/1_46_1/libs/serialization/doc/dataflow.html

如果没有明确地将实际的base64算法添加到我的代码中,这可能吗?

c++ string base64 boost

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

C++ 11和C++ 14中`bsearch`的规范是否有缺陷?

继我对这个问题的回答之后,在C++ 11和C++ 14中:

[C++11, C++14: 25.5/2]:内容与标准C库头相同<stdlib.h>,但以下情况除外:

[C++11, C++14: 25.5/3]: 功能签名:

bsearch(const void *, const void *, size_t, size_t,
        int (*)(const void *, const void *));
Run Code Online (Sandbox Code Playgroud)

被两个声明取代:

extern "C" void *bsearch(const void *key, const void *base,
                         size_t nmemb, size_t size,
                         int (*compar)(const void *, const void *));

extern "C++" void *bsearch(const void *key, const void *base,
                           size_t nmemb, size_t size,
                           int (*compar)(const void *, const void *));
Run Code Online (Sandbox Code Playgroud)

两者都具有与原始声明相同的行为.

然而,

[C++11, C++14: 7.5/5]:如果两个声明声明具有相同名称的函数,并且参数类型列表(8.3.5)是同一命名空间的成员,或者声明具有相同名称的对象是同一命名空间的成员,并且声明为这些名称提供不同的语言链接,该计划是不正常的; 如果声明出现在不同的翻译单元中,则无需诊断.[..]

这是一个缺陷吗?

c++ language-lawyer c++11 c++14 bsearch

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

在C++中包含彼此的标题

我是一个C++新手,但我无法在网上找到这个(最有可能是微不足道的)问题的答案.我在编译两个类相互包含的代码时遇到了一些麻烦.首先,我的#include语句应该在我的宏内部还是外部?实际上,这似乎并不重要.但是,在这种特殊情况下,我遇到了麻烦.将#include语句放在宏之外会导致编译器递归并给我"#include嵌套太深"的错误.这似乎对我有意义,因为在调用#include之前,这两个类都没有完全定义.然而,奇怪的是,当我尝试将它们放入其中时,我无法声明其中一个类的类型,因为它无法识别.从本质上讲,这是我正在尝试编译的内容:

#ifndef A_H_
#define A_H_

#include "B.h"

class A
{
    private:
        B b;

    public:
        A() : b(*this) {}
};

#endif /*A_H_*/
Run Code Online (Sandbox Code Playgroud)

BH

#ifndef B_H_
#define B_H_

#include "A.h"

class B
{
    private:
            A& a;

    public:
        B(A& a) : a(a) {}
 };

#endif /*B_H_*/
Run Code Online (Sandbox Code Playgroud)

main.cpp中

#include "A.h"

int main()
{
    A a;
}
Run Code Online (Sandbox Code Playgroud)

如果它有所作为,我使用的是g ++ 4.3.2.

一般来说,#include语句应该去哪里?我一直看到它们超出了宏,但我清楚描述的场景似乎打破了这个原则.感谢任何帮助提前!如果我犯了任何愚蠢的错误,请允许我澄清我的意图!

c++ recursion header include

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

通过Javascript确定图像文件大小+尺寸?

作为Web应用程序的一部分,一旦图像下载并在网页上呈现,我需要在浏览器上下文中确定图像的文件大小(kb)和分辨率(例如,我可以在页面上显示该信息)显然,这需要在客户端完成.必须能够在没有ActiveX控件或Java applet的情况下解决x-browser(IE7 +,FF3 +,Safari 3 +,IE6很好),尽管它不需要是每个浏览器相同的解决方案.

理想情况下,这将使用系统Javascript完成,但如果我绝对需要一个JQuery或类似的库(或它的一小部分),那就可以完成.

javascript image

44
推荐指数
5
解决办法
11万
查看次数

为什么以及如何在PHP中使用匿名函数?

PHP 5.3提供匿名函数.
我应该使用它们还是避免使用它们?如果是这样,怎么样?

编辑 ; 刚刚用php匿名函数发现了一些不错的技巧......

$container           = new DependencyInjectionContainer();
$container->mail     = function($container) {};
$conteiner->db       = function($container) {};
$container->memcache = function($container) {};
Run Code Online (Sandbox Code Playgroud)

php anonymous-function

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

使用pow(x,2)代替x*x,x double是否有任何优势?

使用此代码有什么好处

double x;
double square = pow(x,2);
Run Code Online (Sandbox Code Playgroud)

而不是这个?

double x;
double square = x*x;
Run Code Online (Sandbox Code Playgroud)

我更喜欢x*x并且查看我的实现(Microsoft)我发现pow没有优势,因为x*x比特定方形情况下的pow更简单.

有什么特别的情况,战俘优越吗?

c++ math floating-point

44
推荐指数
7
解决办法
5万
查看次数

将数组传递给函数(以及它在C++中不起作用的原因)

我遇到了一些编译的C代码,但我不明白为什么.具体来说,我有一个C库,它有很多使用这种格式的代码:

void get_xu_col(int i_start,
                int n,
                double x[n],
                int n_x,
                int n_u,
                int n_col,
                double xu_col[n_col][n_x + n_u]){
    ... 
}

int main(){
    ...
    double xu_col[n_col][n_x + n_u];
    get_xu_col( ..., xu_col );
    ...
}
Run Code Online (Sandbox Code Playgroud)

我不明白的是编译器允许在数组中调整大小的原因.据我所知,尺寸必须固定(例如xu_col[9][7])或未定义(例如xu_col[][]).在上面的代码中,似乎大小不是编译时常量.

编译器是否只是忽略了这里的参数?或者它是否真的在维度上进行编译时检查?

如果是后者,那么分别传递尺寸似乎容易出错.

问题的第二部分是:

为什么相同的版本在C++中不起作用?当我从字面上文件扩展名从改变.c.cpp,并尝试重新编译,我得到

candidate function not viable: no known conversion from 'double [n_col][n_x + n_u]' to 'double (*)[n_x + n_u]' for 7th argument
void get_xu_col(int i_start, int n, double x[n], int n_x, int n_u, int n_col, double …
Run Code Online (Sandbox Code Playgroud)

c c++

44
推荐指数
5
解决办法
6540
查看次数