小编Joe*_*att的帖子

为什么私有拷贝构造函数不起作用?

在主要:

Text *p1 = new Text("alfa");
Text *p2 = new Text("delta");
p1 = p2;
Run Code Online (Sandbox Code Playgroud)

在Text.h中

private:
Text (const Text& t);
Text&  operator=(const Text& t);
Run Code Online (Sandbox Code Playgroud)

但是,我认为编译器应该给出一个错误,例如"operator = is unaccessible",而代码工作就像复制构造函数和operator =不是私有的.实际上,最后p1 = p2 ="delta".为什么?一些忠告?谢谢大家.

c++ operator-overloading copy-constructor visual-c++ c++11

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

无符号WINAPI函数的正确函数指针是什么?

我有一个以这种方式声明的函数:

unsigned WINAPI searchSTR(void *j);
Run Code Online (Sandbox Code Playgroud)

我需要一个指向这个功能的指针.我的想法是:

unsigned (*pointerF) (void*);
pointerF = &searchSTR;
Run Code Online (Sandbox Code Playgroud)

但是有一个错误:

"1 error C2440: '=' : cannot convert from 'unsigned int (__stdcall *)(void *)'
                                       to 'unsigned int (__cdecl *)(void *)' ".

我尝试了其他的sintax,但似乎没有什么是正确的,他不喜欢WINAPI这个词.

你能建议我正确的语法吗?也许这很容易,但我被阻止了!谢谢大家

c++ winapi function-pointers

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

队列<T>上的原子操作?

我应该在Visual C++中用一个队列实现一个类; 在这个队列中我要做原子操作.在网上搜索,我发现了类std :: atomic,但我还有一些问题.首先是:有什么区别:

一个) atomic <queue <T>> fifo;

B)queue <atomic <T>> fifo;

第二个问题是:如何像push一样进行原子操作?

push (T.load) 
Run Code Online (Sandbox Code Playgroud)

是正确的解决方案吗?

最后一个问题是:如果我使用互斥锁保护队列上的某些操作,我还需要对它进行原子操作吗?

任何建议表示赞赏,问候

c++ multithreading visual-c++ c++11

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