为我的 C++ 类(class)编写此程序时我遇到了问题。我的程序读取输入的名称并将其存储到 name
中,然后它想检查 _name
下的参数是否正确。这是我的类及其头文件。
我的错误特别是在 ::setName
下,我想用 _name 检查或设置我输入的名称,以便在 ::display()
电话号码.cpp
using namespace oop244;
void PhoneNumber::display() const{
cout << "name: " << _name << ", Phone number: (" << _areacode << ") " << _localNumber / 10000 << "-" << _localNumber % 10000 << endl;
}
bool PhoneNumber::isValid() const
{
if (correctNum == false && correctArea == false){
cout << _name << " does not have a valid phone number." << endl;
return false;
}
else{
return true;
}
}
void PhoneNumber::setName(const char name[])
{
cout << name << endl;
_name = name;
}
电话号码.h
#define MAX_NAME_LENGTH 40
#define PHNO_MAX 999999
#define PHNO_MIN 100000
#define AREACODE_MIN 100
#define AREACODE_MAX 999
namespace oop244{
class PhoneNumber{
private:
char _name[MAX_NAME_LENGTH + 1];
int _areacode;
int _localNumber;
bool _validPhoneNumber;
public:
void setName(const char name[]);
void setPhoneNumber(int areaCode, int number);
void display() const;
bool isValid() const;
};
};
最佳答案
使用标准字符串
#include <string>
并使用
std::string _name;
在你的类声明中而不是
char _name[MAX_NAME_LENGTH + 1];
或者按照另一个答案中的建议使用 c 风格的 str 函数
关于C++ 表达式必须是可修改的左值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28303705/