关于宏和类的成员函数的疑问

C++语言 码拜 9年前 (2016-04-27) 910次浏览
本人在Logging类的头文件里定义了如下宏
#define LOG_INFO(msg) ::solo::base::Logging::writeToLogging(“#msg”, LOG_INFO)
这里的writeToLogging是类内的一个静态成员函数,供日志输入。
下面是主函数
#include <solo/base/Logging.h>
int main()
{
LOG_INFO(“ADA”);
}
编译提示 本人这个LOG_INFO未声明。
但是本人改掉LOG_INFO 的定义,随便改成一个很简单的定义 例如 (msg > 1 ? 1 : msg) 编译器又不会提示有错误
本人在想是不是原因是后面宏定义的是类静态成员函数的问题。
希望的到解答, 不胜感激。
解决方案

5

宏展开后是

::solo::base::Logging::writeToLogging("#msg", LOG_INFO);

这里的LOG_INFO是什么?

5

类的私有 enum 需要加上 namespace and classname

5

引用:

编译不通过的话本人要怎么才能查看宏展开的结果呢关于宏和类的成员函数的疑问

VS   /P
G++ -E

10

引用:

是类的一个私有enum

LOG_INFO在对应的类里面出现,应该没问题
类外的话,得加上 类作用域 而且还得是public的.


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于宏和类的成员函数的疑问
喜欢 (0)
[1034331897@qq.com]
分享 (0)