本文整理汇总了C++中MyClass::method方法的典型用法代码示例。如果您正苦于以下问题:C++ MyClass::method方法的具体用法?C++ MyClass::method怎么用?C++ MyClass::method使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MyClass
的用法示例。
在下文中一共展示了MyClass::method方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int ac, char **av)
{
Unit unit;
MyClass myClass;
#if 0
/*报错: method的参数不是普通变量,而是一个类的成员方法,不允许这样用*/
//myClass.method(unit.process);
/* 解决方法 1. 将process() 变成静态的方法(与全局函数一样,都是全局的*/
myClass.method(unit.process);//此时可以调用
#endif
/*
产生新问题:如果么某个类不可见,它内部的方法又不是static全局的,就
无法调用了?
解决:可以使用Lambda表达式解决,直接使用已经定义好的类
也可以使用函数对象,但是又要重新写这段代码,麻烦.
*/
//注意:Lambda表达式对访问外部变量有限制,需要在[]里使用 &、= 符号
myClass.method([&](int n){unit.process(n);});
//注意:如果使用 = 号,最好将方法声明为const,因为如果编译器觉得你会修改
// 里边的值,就要报错,编译器不是万能的,这个是否报错,不确定.
myClass.method([=](int n){unit.process(n);});
//这样也可以
myClass.method([unit](int n)mutable{unit.process(n);});
return 0;
}
示例2: main
int main()
{
plog::init(plog::debug, "Demo.csv", 5000, 3); // Initialize the logger.
// Log macro types.
LOGD << "Hello log!"; // short macro
LOG_DEBUG << "Hello log!"; // long macro
LOG(plog::debug) << "Hello log!"; // function-style macro
// Log severity levels.
LOG_VERBOSE << "This is a VERBOSE message";
LOG_DEBUG << "This is a DEBUG message";
LOG_INFO << "This is an INFO message";
LOG_WARNING << "This is a WARNING message";
LOG_ERROR << "This is an ERROR message";
LOG_FATAL << "This is a FATAL message";
LOG_NONE << "This is a NONE message";
// Integers demo.
LOG_INFO << "This is a bool: " << std::boolalpha << true;
LOG_INFO << "This is a char: " << 'x';
LOG_INFO << "This is an unsigned char: " << (unsigned char)40;
LOG_INFO << "This is a short: " << (short)-1000;
LOG_INFO << "This is an unsigned short: " << (unsigned short)1000;
LOG_INFO << "This is an int: " << (int)-1000000;
LOG_INFO << "This is an unsigned int: " << (unsigned int)1000000;
LOG_INFO << "This is a long(hex): " << std::hex << (long)100000000;
LOG_INFO << "This is an unsigned long: " << (unsigned long)100000000;
LOG_INFO << "This is a float: " << 1.2345f;
LOG_INFO << "This is a double: " << std::setprecision(15) << 1.234512345;
// Managed string.
#ifdef __cplusplus_cli
System::String^ managedStr = "This is a managed string";
LOG_INFO << managedStr;
#endif
// Null strings are safe.
LOG_DEBUG << static_cast<char*>(NULL);
LOG_DEBUG << static_cast<const char*>(NULL);
#if PLOG_ENABLE_WCHAR_INPUT
LOG_DEBUG << static_cast<wchar_t*>(NULL);
LOG_DEBUG << static_cast<const wchar_t*>(NULL);
#endif
// Plog handles unicode and std::string/wstring.
#ifndef _WIN32 // On Windows the following code produces a warning C4566 if the codepage is not Cyrillic.
LOG_DEBUG << "Cat - котэ";
LOG_DEBUG << std::string("test - тест");
#endif
#if PLOG_ENABLE_WCHAR_INPUT
LOG_DEBUG << L"Cat - котэ";
LOG_DEBUG << std::wstring(L"test - тест");
LOG_DEBUG << L'ы';
#endif
// Multiline.
LOG_INFO << "This\nis\na" << std::endl << "multiline\nmessage!";
// Quotes.
LOG_INFO << "This is a message with \"quotes\"!";
// Conditional logging.
int var = 0;
LOG_DEBUG_IF(var != 0) << "You shouldn't see this message";
LOG_DEBUG_IF(var == 0) << "This is a conditional log message";
// Executed only on log level >= debug.
IF_LOG(plog::debug) var = 5; // one line
IF_LOG(plog::debug) // block
{
var++;
}
// Log macros don't break then-else clause without braces.
if (var == 0) LOGI << "then clause (condition is false, so it is skipped)"; else LOGI << "else clase (should be visible)";
// Log in a class (capture this pointer, c++ function names).
MyClass obj;
obj.method();
obj.inlineMethod();
MyClass::staticMethod();
// Implicit cast to string.
LOG_INFO << obj;
// ostream operator<< (on Windows wostream operator<< has priority but not required)
Customer customer = { 10, "John" };
LOG_INFO << customer;
return 0;
}