小编Mik*_*ite的帖子

C++中的静态属性

使用这样的伪代码:

class FooBar {
public:
    int property;
    static int m_static;
}

FooBar instance1 = new FooBar();
FooBar instance2 = new FooBar();
Run Code Online (Sandbox Code Playgroud)

如果我设置instance1的属性,它显然不会影响第二个.但是,如果我改为设置静态属性,则更改应传播到类的每个实例.

如果instance1和2在不同的线程中,这也会发生吗?

c++ static multithreading

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

在Nodejs中具有依赖注入的模型

将依赖项注入模型的最佳实践是什么?特别是,如果他们的getter是异步的,如同mongodb.getCollection()

重点是一次注入依赖项

var model = require('./model')({dep1: foo, dep2: bar});
Run Code Online (Sandbox Code Playgroud)

并调用所有成员方法,而不必将它们作为参数传递.我也不希望每个方法都以异步getter的瀑布开始.

我最终得到了一个专用的exports包装器,它代理所有调用并传递异步依赖项.

然而,这会产生很多开销,重复很多,我通常不喜欢它.

var Entity = require('./entity');

function findById(id, callback, collection) {
    // ...
    // callback(null, Entity(...));
};

module.exports = function(di) {
    function getCollection(callback) {
        di.database.collection('users', callback);
    };

    return {
        findById: function(id, callback) {
            getCollection(function(err, collection) {
                findById(id, callback, collection);
            });
        },
        // ... more methods, all expecting `collection`
    };
};
Run Code Online (Sandbox Code Playgroud)

注入依赖项的最佳实践是什么,尤其是那些具有异步getter的依赖项?

dependency-injection node.js

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

函数参数视为未声明

我已经准备好了这个对我不起作用的简单例子

#include <stdio.h>
#include <stdlib.h>

FILE *fp;
char filename[] = "damy.txt";

void echo (char[] text)
{
    fp = fopen(filename, "a");
    fwrite(text, 1, strlen(text), fp);
    fclose(fp);
    printf(text);
}

int main ()
{
    echo("foo bar");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

它应该写入命令窗口和文件.但是,这会产生编译错误 - text未声明echo()中使用的内容.c需要另一个变量声明吗?

c

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

Scanf因总线错误而失败

我正在玩C,我遇到了这个错误:

#include <stdio.h>
int main ()
{
 char* foo;
 scanf("%s", foo);
 printf("entered %s", foo);
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

scanf取指针,foo是指针,但我得到总线错误.我怎样才能使它工作?

c pointers scanf bus-error

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

C++中的复杂向量

我使用这个向量:vector<string, vector<int>>.我认为第一次迭代返回一个数组:

for (vector<string, vector<int>>::iterator it = sth.begin(); it != sth.end(); ++it) {
    // how do I get the string?
    // I tried (*it)[0], but that did not work
}
Run Code Online (Sandbox Code Playgroud)

另外,我怎么会push_back这个向量?传球vector<string, vector<int>()>()对我不起作用.谢谢

c++ vector

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