小编Ale*_*hul的帖子

JavaScript:为什么“ for in”循环从__proto__中选择变量?

trigger在对象原型中添加了一个方法:

Object.prototype.trigger = function() {
    //  ...
    return this;
};
Run Code Online (Sandbox Code Playgroud)

然后有一个“ for in”循环:

var obj = { 4: 15, 10 : 41, 11 : 46, 12 : 51, 20 : 74 }
for( item in obj ) {
    foo( obj[item] );
}
Run Code Online (Sandbox Code Playgroud)

但是此循环有6次迭代,而不是5次。最后一次迭代使用key:

item = "trigger"
Run Code Online (Sandbox Code Playgroud)

为什么循环遍历__proto__对象的一部分?

javascript for-loop prototype

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

当我push_back到向量时调用析构函数

我有这个类定义:

class FlashStream
{
public:
    explicit FlashStream(const char * url, vector<uint8> * headers, vector<uint8> * data, void * ndata, void * notifyData = NULL, uint32 lastModified = NULL);
    ~FlashStream();
private:        
    NPStream      _stream;
    // ...
}
Run Code Online (Sandbox Code Playgroud)

(NPStream描述)

及其实施:

FlashStream::FlashStream(const char * url, vector<uint8> * headers, vector<uint8> * data, void * ndata, void * notifyData, uint32 lastModified)
{
    // ...
    memset(&_stream, 0, sizeof(NPStream));

    _stream.headers = new char[data->size()]; 

    memcpy((void*)_stream.headers, &(*data)[0], data->size());
    // ...
}

FlashStream::~FlashStream()
{
    // ...
    if(_stream.headers)
        delete [] …
Run Code Online (Sandbox Code Playgroud)

c++ destructor vector

2
推荐指数
3
解决办法
2516
查看次数

std :: remove_if无法正常工作

在这里我的代码.我希望通过成功调用方法'release'从vector中删除所有元素.

bool foo::release()
{
    return true;
}

// ...
vector<foo> vec;
// ...
remove_if(vec.begin(), vec.end(), [](foo & f) { return f.release() == true; });
// ...
Run Code Online (Sandbox Code Playgroud)

remove_if不要删除所有元素vector vec.怎么样remove_if

c++ stl remove-if

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

为Dialog创建窗口类

我使用静态窗口过程为对话框窗口创建一个窗口类,并在创建窗口时执行错误:写入位置“0x00000000”时访问被拒绝

// ... Creating window
_hWnd = CreateDialogParam(hInst, MAKEINTRESOURCE(IDD_MAIN), NULL, WndProc, (LPARAM)this);
Run Code Online (Sandbox Code Playgroud)

和窗口过程函数:

static INT_PTR CALLBACK MainWindow::WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    MainWindow * wnd = NULL;

    if(message == WM_NCCREATE) {

         wnd = reinterpret_cast<MainWindow *>(((LPCREATESTRUCT)lParam)->lpCreateParams);
         ::SetWindowLongPtr(hWnd, GWLP_USERDATA, reinterpret_cast<long>(wnd));
         wnd->_hWnd = hWnd;

    } else
         wnd = reinterpret_cast<MainWindow *>(::GetWindowLongPtr(hWnd, GWLP_USERDATA));

    // ...
}
Run Code Online (Sandbox Code Playgroud)

c++ winapi dialog wndproc

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

标签 统计

c++ ×3

destructor ×1

dialog ×1

for-loop ×1

javascript ×1

prototype ×1

remove-if ×1

stl ×1

vector ×1

winapi ×1

wndproc ×1