如何使用 cout 显示类中类的值?

How to use cout to display a value from a class within a class?

本文关键字:cout 显示 何使用      更新时间:2023-10-16

这里有三个不同的类

#pragma once
#include <string>
#include "registeredUser.h"
using namespace std;
class theater
{
public:
string address;
registeredUser registerUser(string e, string p)
{
registeredUser y;
y.email = e;
y.password= p;
return y;
}
};

#pragma once
#include <string>
#include "userData.h"
#include "movie.h"
using namespace std;
class registeredUser
{
public:
string email;
string password;

movie addMovie(string t, int y, string d, string g)
{
movie m;
m.title = t;
m.year = y;
m.desc = d;
m.genre = g;
return m;
}
userData addUserData(string n, string a, string cc)
{
userData y;
y.name = n;
y.address = a;
y.creditCard = cc;
return y;
}

};

#pragma once
#include<string>
using namespace std;
class userData
{
public:
string name;
string address;
string creditCard;
};

我在下面的代码中所做的是创建一个剧院的实例,然后在剧院的实例中创建一个注册用户的实例。此用户实例中还有另一个类:userData。

// create a new theatre object
theater uweTheater;
uweTheater.address = "UWE Frenchay";
// register a user with the theatre and add some user details
registeredUser user1 = uweTheater.registerUser("user1@here.com", "password");
user1.addUserData("Name", "Address", "Number");

如何使用 std::cout 显示最内部的类详细信息?例如,如果我想显示 user1 的名称,我将如何在 cout 语句中声明它 -> std::cout <<??<<endl;

您的theater类有一个名为registerUser()的方法,该方法创建registeredUser的实例并返回它。registeredUser同样有一个名为addUserData()的方法,该方法创建userData的实例并返回它。这些方法的名称具有误导性,因为它们都不向外部类添加或注册用户。相反,它们都只是创建一个实例并返回它。

我认为没有理由将registeredUseruserData分开.您应该创建一个包含用户所需所有字段的User类。还应向theater类添加一个字段,以跟踪其所有用户。例如,您可以执行以下操作:

class theater {
private:
std:vector<User> users;
}

然后,您的registerUser()方法可以将用户添加到此用户列表中。

然后,要回答有关打印信息的问题,您可以覆盖两个类的operator>>()来执行此操作。