C++ 用户创建的对象的属性赢得';t打印(C+;+;)

C++ 用户创建的对象的属性赢得';t打印(C+;+;),c++,c++14,C++,C++14,我试图用一系列用户输入创建一个对象,但它似乎不起作用 代码如下: (无错误发生) 创建类并使用构造函数,因此如果不是用户创建的,则更容易输入详细信息: #include <iostream> using namespace std; class Person{ public: string FirstName; string Surname; string Gender; int Age; double Money; Pers

我试图用一系列用户输入创建一个对象,但它似乎不起作用

代码如下: (无错误发生)

创建类并使用构造函数,因此如果不是用户创建的,则更容易输入详细信息:

#include <iostream>
using namespace std;

class Person{
    public:
    string FirstName;
    string Surname;
    string Gender;
    int Age;
    double Money;
    Person(string aFirstName, string aSurname, string aGender, int aAge, double aMoney){
        aFirstName = FirstName;
        aSurname = Surname;
        aGender = Gender;
        aAge = Age;
        aMoney = Money;
        }
                
    };
#包括
使用名称空间std;
班主任{
公众:
字符串名;
串姓;
字符串性别;
智力年龄;
双倍货币;
Person(字符串名称、字符串名称、字符串代理、整数、双倍金额){
affirstname=FirstName;
aSurname=姓氏;
aGender=性别;
aAge=年龄;
阿莫尼=金钱;
}
};
声明稍后将替换的变量并使用用户输入获取它们:

int main(){
        string bFirstName;
        string bSurname;
        string bGender;
        int bAge;
        double bMoney;
        cout << "What is your character's First Name?" <<endl;
        getline(cin, bFirstName);
        cout << "What is your character's Surname?" <<endl;
        getline(cin, bSurname);
        cout << "What is your character's Gender?" <<endl;
        getline(cin, bGender);
        cout << "What is your character's Age?" <<endl;
        cin >> bAge;
        cout << "How much money does your character have?" <<endl;
        cin >> bMoney;

        // Then substituting the variables into an object:

        Person Custom1(bFirstName, bSurname, bGender, bAge, bMoney);

        // And finally trying to print the gender out 
        // (I have tried all the other as well with no success) 
        // and ending the program:

        cout << Custom1.Gender;
        return 0;
}
intmain(){
字符串bFirstName;
字符串bSurname;
线绳;
国际贝奇;
双B货币;

您的构造函数的初始化方式不对。请尝试以下方法:

Person(string aFirstName, string aSurname, string aGender, int aAge, double aMoney){
        FirstName = aFirstName;
        Surname = aSurname;
        Gender = aGender;
        Age = aAge;
        Money = aMoney;
        }

看看你的构造函数。你没有把参数分配给成员,你已经交换了它。你有你分配的项目颠倒了。注意你分配的变量应该是左边的。你在分配值时也可以考虑使用cTor初始化列表,比如<代码> cTor(int tyv):Myv(tyv){}。
我有点惊讶,你没有收到关于
年龄
金钱
的警告。向后分配时,你正在使用未初始化的成员变量来覆盖传入的参数。这里有一些警告:通常最好将答案表述为语句,而不是问题stion,是语句。好的,但为什么会有问题?提问者也可以利用。它通常更快(直接初始化对象,而不是稍后默认的构造和赋值)如果你把逻辑倒过来,编译器就会发出错误。事实上,那句话很好,它应该是一个断言。我编辑它是为了弄清楚我的意思。如果没有那句话,它会变成一个只写代码的答案,这也不理想。编辑可以吗?