微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在头文件中使用 char * 不起作用

如何解决在头文件中使用 char * 不起作用

下面的代码编译得很好。但是,当我运行 main.cpp调用方法 Func_TrueOrFalse 时,我发现此方法中的 if 语句运行不正常。语句 a == "abc"false,但它应该是 true,因为在 main.cpp 中我调用 N.Func_TrueOrFalse("abc")。我不明白,错误在哪里。我尝试用 char * 替换 string 并且效果很好。但是为什么它不适用于 char *?我应该如何修改它才能工作?

最好的, 菲尔

文件TrueFalse.h

#include <iostream>

using namespace std;

#ifndef _TRUEFALSE_
#define _TRUEFALSE_

class TrueOrFalse {
private:
    int i;
public:
    TrueOrFalse(int NN);
    void Func_TrueOrFalse(char *a);
};

#endif

Cpp 文件 TrueFalse.cpp

#include <iostream>
#include "TrueFalse.h"

using namespace std;

TrueOrFalse::TrueOrFalse(int NN) {
    i = NN;
}

void TrueOrFalse::Func_TrueOrFalse(char *a) {
    if (a == "abc") {
        cout << "abc" << endl;
    } else {
        cout << "xyz" << endl;
    }
}

文件main.cpp

#include <iostream>
#include "TrueFalse.h"

using namespace std;

int main()
{
    TrueOrFalse N(3);
    N.Func_TrueOrFalse("abc");
    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。