无法将参数 1 从“const char *”转换为“char

2018-11-06  本文已影响21人  863cda997e42

今天在开发中遇到了下面这个问题。

error C2664: “bool InUse(char *)”: 无法将参数 1 从“const char *”转换为“char *”

函数定义的参数类型是char *,实际传入函数的是const char * 类型。
代码如下:

#include <iostream>
#include <set>
using namespace std;

struct ltstr
{
    bool operator()(const char* s1, const char* s2) const
    {
        return strcmp(s1, s2) < 0;
    }
};

typedef set<char *, ltstr> CPackageSet;
CPackageSet g_setUsePackage;

bool InUse(char *name)
{
    return (g_setUsePackage.find(name) != g_setUsePackage.end());
}


int main()
{
    const char * s = "sdfsd";
    InUse(s);//提示有错误

    char * t = "asdf";
    size_t len = strlen(t);
    cout << len << endl;
    return 0;
}

如果参数类型是const char *,实际传入的是char * 类型,经过测试是没有问题的。

上一篇 下一篇

猜你喜欢

热点阅读