Hy在那裏,我是新的C++和我有一個小問題。有一個叫做「bool checkIfPersonAlreadyExists(){...}」的函數,我希望這個函數返回一個bool類型的變量,但它不會。誰能幫我這個? (答案應該是「真」或「假」,但以這種形式:「返回IfPersonAlreadyExists」)。C++打印出布爾型變量
#include <iostream>
#include <cctype>
#include <cstdlib>
using namespace std;
class Library {
private:
string name, surname;
int LSP;
bool IfPersonAlreadyExists;
//toString metodas ir kaip ji pasiekti is private?????
string toString (string name) {
cout << name << " " << surname << " " << LSP << endl;
return name;
}
public:
//setters
int setName (string name) {
if (!name.empty() && isalpha(name[0]) && isupper(name[0]))
this -> name = name;
else {
cout << "Wrong entry!" << endl;
return 0;
}
}
int setSurname (string surname) {
if (!surname.empty() && isalpha(surname[0]) && isupper(surname[0]))
this -> surname = surname;
else {
cout << "wrong entry!" << endl;
return 0;
}
}
int setLSP (int LSP) {
if (LSP > 0)
this -> LSP = LSP;
else {
cout << "Wrong entry!" << endl;
return 0;
}
}
void setIfPersonAlreadyExists (bool IfPersonAlreadyExists) {
this -> IfPersonAlreadyExists = IfPersonAlreadyExists;
IfPersonAlreadyExists = true;
}
//getters
string getName() {
return name;
}
string getSurname() {
return surname;
}
int getLSP() {
return LSP;
}
bool getIfPersonAlreadyExists() {
return IfPersonAlreadyExists;
}
//Kaip padaryti kad return true or false?????/?
bool checkIfPersonAlreadyExists (bool IfPersonAlreadyExists, int LSP) {
int LSPCheck;
cout << "Enter LSP number to check" << endl;
cin >> LSPCheck;
if (LSPCheck != LSP) {
IfPersonAlreadyExists = false;
//cout << boolalpha << IfPersonAlreadyExists << endl;
return IfPersonAlreadyExists;
}
else {
IfPersonAlreadyExists = true;
cout << boolalpha << IfPersonAlreadyExists << endl;
return IfPersonAlreadyExists;
}
}
};
int main() {
Library library;
string name, surname;
int LSP;
bool IfPersonAlreadyExists = true;
cout << "Enter your name: " << endl;
cin >> name;
library.setName(name);
//cout << library.getName() << endl;
cout << "Enter your surname: " << endl;
cin >> surname;
library.setSurname(surname);
//cout << library.getSurname() << endl;
cout << "Enter your LSP number: " << endl;
cin >> LSP;
library.setLSP(LSP);
//cout << library.getLSP() << endl;
//library.toString(name);
library.setIfPersonAlreadyExists(IfPersonAlreadyExists);
// cout << library.getIfPersonAlreadyExists() << endl;
library.checkIfPersonAlreadyExists(IfPersonAlreadyExists, LSP);
return 0;
}
它已經返回一個布爾值...什麼是問題? – IdeaHat 2014-09-12 19:51:59
請勿使用與成員變量名稱相同的參數名稱。這是合法的,但很混亂。 – Logicrat 2014-09-12 19:55:31
它應該返回布爾值,但它什麼也不做,我的問題是:我的代碼中有沒有問題,它不會返回答案? – 2014-09-12 19:59:00