在头文件中使用 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 (将#修改为@)