class A(E *pE)
{
//对*pE操作
}class C(E *pE)
{
//对*pE操作
}class E
{
//
}主程序:操作如下
E *pE1,*pE2;
A *pA1(pE1),*pA2(pE2);
C *pC1(pE1),*pC2(pE2);这样做会不会出错?
要求:
类C和类A都会对E进行操作
如果出现同时操作呢?会不会有问题?怎么样避免这种问题?
{
//对*pE操作
}class C(E *pE)
{
//对*pE操作
}class E
{
//
}主程序:操作如下
E *pE1,*pE2;
A *pA1(pE1),*pA2(pE2);
C *pC1(pE1),*pC2(pE2);这样做会不会出错?
要求:
类C和类A都会对E进行操作
如果出现同时操作呢?会不会有问题?怎么样避免这种问题?
解决方案 »
- 记事本程序中如何得到文件的路径?
- Microsoft Windows CE .NET 4.2 中的WS_CLIPCHILDREN 相关问题
- 多线程中创建socket有疑问???
- 请教高手~~~~~~~~~~~~~~~
- 根据得到的汉字点阵信息,把该字显示在窗口中
- 请大家给我点建议!
- 在线程中调用外部的应用程序的问题!
- 高分求救:如何截取信息和发送信息
- 请教:怎样用CEdit的对象create一个俩行的edit对话框,谢谢!!
- 菜鸟问题:大家看看我写的建立链表的程序对不对,送分了
- 数据库中数据类型:Decimal,bigint,Money,Timestamp 等,和vc++6.0中数据类型的对应关系,如何处理?不够可加分
- 如何让用MFC开发的ActiveX控件在IE中打开时跳过安全警告对话框?高分啊!
A *pA1(pE1),*pA2(pE2);
C *pC1(pE1),*pC2(pE2); 是函数声明?还是?你用的是指针引用阿,你可以声明对象后对其操作,操作肯定有个顺序的,一般不会出问题,除非涉及到线程或者全局静态E类的对象。一般不会出问题了。
CRITICAL_SECTION cs ;
InitializeCriticalSection(&cs) ;
调用下面两个函数加锁和解锁EnterCriticalSection(&cs) ; // 加锁LeaveCriticalSection(&cs) ; // 解锁最后用 DeleteCriticalSection(&cs); // 很简单的,上网搜搜吧
这样很危险!
可以这样 E e1;
E* pE1 = &e1;
.......
这样很危险!
可以这样 E e1;
E* pE1 = &e1;
.......
--------------
的确这样做是有很打危险。
-----------
现得出结论:
方法一:
1.1 主窗体.h文件中声明: E *pE1;
1.2 主窗体的构造函数 : pE1 = new E(参数);
这样做的好处,对象pE1在主窗体内部都可以使用。
不足之处,只能是指针对象
-----------
方法二:
2.1 在主窗体的某个程序内处理
2.2 E e1;
E *pE = &e1;
这样做必须E内部必须有一个空的构造函数
2.3 E *pE = new E(参数);
或者 E *pE = NULL;
pE = new E(参数);