ASSERT_VALID强制调用参数对象(必须是CObject或CObject*)的AssertValid函数,该函数实现对象的内部一致性检查,当你创建一个可重用类时,应该重载这个函数(VC中缺省已经重载了该函数),你可以在该函数中进行必要的检查工作. ASSERT宏用于确保参数内的表达式正确,如果表达式为false,则会显示一个消息对话框,其中有源文件的名...
ASSERT_VALID强制调用参数对象(必须是CObject或CObject*)的AssertValid函数,该函数实现对象的内部一致性检查,当你创建一个可重用类时,应该重载这个函数(VC中缺省已经重载了该函数),你可以在该函数中进行必要的检查工作. ASSERT宏用于确保参数内的表达式正确,如果表达式为false,则会显示一个消息对话框,其中有源文件的名...
class CPerson : public CObject { protected: CString m_strName; float m_salary; public: #ifdef _DEBUG // Override virtual void AssertValid() const; #endif // ... }; 当重写AssertValid时,请在执行您自己的检查之前调用AssertValid的基类版本。然后,使用 ASSERT 宏检查您的派生类特有的成员,如下所示...
class CPerson : public CObject { protected: CString m_strName; float m_salary; public: #ifdef _DEBUG // Override virtual void AssertValid() const; #endif // ... }; Quando si esegue l'override diAssertValid, chiamare la versione della classe base diAssertValidprima di eseguire i control...
ASSERT(sizeof(CObject) == sizeof(void*)); if (!AfxIsValidAddress(*(void**)pOb, sizeof(void*), FALSE)) { TRACE(traceAppMsg, 0, "ASSERT_VALID fails with illegal vtable pointer.\n"); if (AfxAssertFailedLine(lpszFileName, nLine)) ...
Көшіру #ifdef _DEBUG void CPerson::AssertValid() const { // Call inherited AssertValid first. CObject::AssertValid(); // Check CPerson members... // Must have a name. ASSERT( !m_strName.IsEmpty()); // Must have an income. ASSERT( m_salary > 0 ); } #endif ...
class CMyData : public CObject { // Constructor and other members ... protected: CObList* m_pDataList; // Other declarations ... public: #ifdef _DEBUG // Override: virtual void AssertValid( ) const; #endif // And so on ... }; ...
ASSERT_VALID强制调用参数对象(必须是CObject或CObject*)的AssertValid函数,该函数实现对象的内部一致性检查,当你创建一个可重用类时,应该重载这个函数(VC中缺省已经重载了该函数),你可以在该函数中进行必要的检查工作. ASSERT宏用于确保参数内的表达式正确,如果表达式为false,则会显示一个消息对话框,其中有源文件的名...
class CPerson : public CObject { protected: CString m_strName; float m_salary; public: #ifdef _DEBUG // Override virtual void AssertValid() const; #endif // ... }; AssertValidをオーバーライドするときは、派生クラス独自のチェックを行う前に、基本クラスのAssertValidを呼び出します。