在C++中,我们使用deleteoperator来在大多数时间删除对象.
该delete不会使指针值NULL.有什么方法可以自动实现吗?
例如
int *p = new int;
delete p; // this should deallocate object pointed by p
// and also initialized value of p = NULL
Run Code Online (Sandbox Code Playgroud) 任何人都有关于线程安全数据容器的想法,比如queue,map?当我们使用/ MT开关进行编译时,我不想要线程安全的STL.
真正的线程安全测试STL容器.
我正在使用VS2005编译器,我期待以下代码给出编译错误.
int a=1, b= 2, c=3;
a = (b,c);
Run Code Online (Sandbox Code Playgroud)
后赋值的值是3.根据我的理解,它应该给出编译错误.
我很高兴知道这背后是否有任何正当理由.
我有以下情况
class base
{
public:
virtual void Accepted(SOCKET s) //// Event
{
}
void Listner()
{
SOCKET acpted;
Accepted(acpted); /// When I call I want derived class's Accepted() to get called
}
};
class derived
{
virtual void Accepted(SOCKET s) //// Event
{
////// HERE i will write actual implementation (QUESTION)
}
}
Run Code Online (Sandbox Code Playgroud)
我想调用派生类的函数.这将像这里的事件一样工作.我想通知派生类在基类中发生的事情.
代码是这样的
{
int a;
if( a == 0 )
{
std::string str("some");
goto CLEANUP;
}
return;
CLEANUP:
printf("CLEANUP");
}
Run Code Online (Sandbox Code Playgroud)
这给了我错误编译器错误C2362''标签'的初始化被'转到标签'跳过
我移动了std :: string str("some"); 在int之后; 它仍然给我同样的错误
我想生成不同的命名函数,用于编写单元测试用例.我想这样做基本上为每个单元测试用例赋予唯一的名称.
我正在使用谷歌测试框架来编写单元测试用例.我必须用来TEST_Macro编写单元测试用例.我想自动为每个单元测试提供递增的数字.
这是我的(非工作)代码:
#include <iostream>
using namespace std;
#define join(x, y) x## y
void join(test, __COUNTER__)()
{
cout << "\n 1";
}
void join(test, __COUNTER__)()
{
cout << "\n 2";
}
int main()
{
cout << "Hello world!" << endl;
test0() ;
test1() ;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
使用生成唯一函数名的正确方法是什么__COUNTER__?