Hy, я новичок на C++, и у меня небольшая проблема. Существует функция, называемая «bool checkIfPersonAlreadyExists() {...}», и я хочу, чтобы эта функция возвращала переменную типа bool, но это не так. Кто-нибудь может мне с этим помочь? (Ответ должен быть «истинным» или «ложным», но в таком виде: «return IfPersonAlreadyExists»).C++ печать переменных типа bool
#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
Не используйте имя параметра, которое совпадает с именем переменной-члена. Это законно, но это сбивает с толку. – Logicrat
Он должен возвращать логическое значение, но он ничего не делает, и мой вопрос: есть ли в моем коде проблема в том, что она не возвращает ответ? –