非常感谢您花时间看我的问题!
现在我正在使用类和对象。我正在尝试编写一个程序,用于存储有关酒店访客的信息。用户将输入访问者的姓名和一些有关他们的信息。然后,程序将该信息存储在一个对象中,并能够计算用户停留的费用。
我遇到的问题是我不知道如何让程序为访问者创建新对象。例如,如果Sally进来,我想在程序中为她创建一个可以存储她信息的新对象。
我已经看过动态对象创建并在这个主题上做了相当多的谷歌搜索,但似乎找不到任何答案。这是我想要做的简化版本:
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
class visitor {
public:
string name;
int age;
};
int main()
{
//a new person comes to the hotel, the person at the desk gives the program his/her name
//and age and it is put into a class so it can be used later.
}
如果有更好的方法来实现这一点,我会喜欢建议,我只是一个初出茅庐的程序员,很可能我接近这个错误。
提前致谢!
答案 0 :(得分:1)
到目前为止,你做得很好。
class visitor {
public:
string name;
int age;
};
int main()
{
//a new person comes to the hotel, the person at the desk
//gives the program his/her name
//and age and it is put into a class so it can be used later.
}
现在记住定义一个整数值i是多么容易,并用0:
初始化它int i = 0;
你的课就像“int”。将名称变量命名为int。
visitor guest1;
您应该编写默认的ctor来初始化内容。请注意,您的代码具有编译器提供的默认ctor。但它的作用(没有)并不是非常有用。
然后写一个非默认的ctor来填写内容。
依此类推,等等。
显示值的show方法怎么样。
guest1.show();
祝你好运。
答案 1 :(得分:0)
您需要创建一个构造函数。这是一个构建访问者的功能。我们写如下:
class Visitor {
public:
string name;
int age;
Visitor(string name, int age) {
this->name = name;
this->age = age;
}
};
然后我们可以使用以下内容创建一个新的Visitor对象(请注意其通常的约定,使类名的第一个字母为大写):
Visitor sally = Visitor("Sally", 22);
要允许用户输入我们想要的名称和年龄,您应该查看另一个SO答案,例如Getting user input in C++。
编辑你没有需要来创建一个构造函数,因为在这种情况下编译器会默认创建一个构造函数,但是对于你来说,学习它会很有用。暂时创建自己的构造函数,这样你就知道发生了什么。