volatile可以用于类对象吗?喜欢:
volatile Myclass className;
Run Code Online (Sandbox Code Playgroud)
问题是它无法编译,无论何时调用某个方法,错误都说:错误C2662:'function':无法将'this'指针从'volatile MyClass'转换为'MyCLass&'
这里有什么问题以及如何解决?
编辑:
class Queue {
private:
struct Data *data;
int amount;
int size;
public:
Queue ();
~Queue ();
bool volatile push(struct Data element);
bool volatile pop(struct Data *element);
void volatile cleanUp();
};
.....
volatile Queue dataIn;
.....
EnterCriticalSection(&CriticalSection);
dataIn.push(element);
LeaveCriticalSection(&CriticalSection);
Run Code Online (Sandbox Code Playgroud)
Jes*_*der 15
是的,你可以,但是你只能调用声明的成员函数volatile(就像const关键字一样).例如:
struct foo {
void a() volatile;
void b();
};
volatile foo f;
f.a(); // ok
f.b(); // not ok
Run Code Online (Sandbox Code Playgroud)
根据您的代码进行编辑:
bool volatile push(struct Data element);
Run Code Online (Sandbox Code Playgroud)
声明了一个非 - volatile返回成员函数bool volatile(= volatile bool).你要
bool push(struct Data element) volatile;
Run Code Online (Sandbox Code Playgroud)
小智 7
我想他应该说
bool push(struct Data element) volatile;
Run Code Online (Sandbox Code Playgroud)
代替
bool volatile push(struct Data element);
Run Code Online (Sandbox Code Playgroud)
另请查看http://www.devx.com/tips/Tip/13671
| 归档时间: |
|
| 查看次数: |
10536 次 |
| 最近记录: |