Ich halte die folgenden Fehler von meinem Code bekommen:Fehler: keine Member-Funktion in der Klasse deklariert
(Linie 58) Fehler: nein 'std :: string Person :: Modify_Person (Person)' Member-Funktion in der Klasse deklariert 'Person' in Funktion 'int main()':
(Linie 113) Fehler: 'Modify_Person' wurde nicht in diesem Bereich erklärt
Hier ist der Code:
#include <iostream>
#include <string>
using namespace std;
void PassByByValue(int num2){
cout << "You are in PassByValue()" << endl;
num2++;
}
class Person{
int age;
string name;
int height;
int weight;
public:
Person(){
}
Person(string name){
this->name=name;
}
string getName(){
return this->name;
}
void setAge(int age){
this->age=age;
}
void setName(string name){
this->name=name;
}
void setHeight(int height){
this->height=height;
}
void setWeight(int weight){
this->weight=weight;
}
~Person(){
}
};
string Person::Modify_Person(Person example){
example.getName()="Jessica";
return example.getName();
}
void PassByRef(int& num3){
cout << "You are in PassByRef()" << endl;
num3=50;
cout << "inside PassByRef() pNum is: " <<num3<<endl;
}
int main()
{
int num1;
int* pNum;
num1=3;
*pNum=5;
PassByByValue(num1);
cout << "num1= " <<num1 <<endl;
PassByRef(*pNum);
cout << "outside PassByRef() in main() pNum is: " <<pNum<<endl;
PassByByValue(*pNum);
double* DblePtr;
DblePtr= new double;
*DblePtr=12.0;
cout<< "DblePtr: "<< &DblePtr;
delete[] DblePtr;
cout<< "DblePtr: "<< &DblePtr;
Person human;
human.setName("Kate");
human.setAge(27);
human.setHeight(100);
human.setWeight(100);
Modify_Person(human);
cout << "Modify_Person returns: " << Modify_Person(human) <<endl;
cout << "name should be Jessica: " << human.getName() << endl;
return 0;
}
Sie sollten auf Scoping Regeln nachlesen. Dies könnte ein guter Anfang sein: http://en.cppreference.com/w/cpp/language/scope – TallChuck
Compiler ist tot rechts. Nirgends in 'Person' ist eine' Modify_Person'-Methode deklariert. Außerhalb 'Person', yep. Direkt darunter.Etwas zu spät, leider. – user4581301
Danke @TallChuck und @ user4581301! –