Определяется только внутри класса - PullRequest
0 голосов
/ 26 мая 2018
#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <string>
using namespace std;
class Meny
{
public:
    void Meny2()
    {
        cout << "Welcome " << Name << LastName;
    }
};

class Kund
{
public:
    string  Name, LastName, personnummer;

    void LoggaIn()
    {
        cout << "Please enter your full name: " << endl;
        cin >> Name >> LastName;
        cout << "Please enter your social security number: " << endl;
        cin >> personnummer;
    }
};

Так что в настоящее время cout << "Welcome " << Name << LastName; не будет работать, потому что Name и LastName не определены в классе Meny, есть ли способ сделать их определенными, даже если они определены в другом классе?

1 Ответ

0 голосов
/ 26 мая 2018

Name и LastName не являются свойствами Meny.Они являются свойствами Kund.Таким образом, эти свойства не доступны.Вам нужно как-то сделать это доступным.

#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <string>
using namespace std;

class Kund
{
public:
    string  Name, LastName, personnummer;

    void LoggaIn()
    {
        cout << "Please enter your full name: " << endl;
        cin >> Name >> LastName;
        cout << "Please enter your social security number: " << endl;
        cin >> personnummer;
    }
};

class Meny
{
public:
    void Meny2(const Kund& k) const
    {
        cout << "Welcome " << k.Name << k.LastName;
    }
};

или подкласс

class Meny: public Kund
{
public:
    void Meny2() const
    {
        cout << "Welcome " << Name << LastName;
    }
};

или шаблон

template <typename T>
class Meny: public T
{
public:
    void Meny2() const
    {
        cout << "Welcome " << Name << LastName;
    }
};

или использовать шаблон в функции

class Meny
{
public:
    template <typename T>
    void Meny2(const T& k) const
    {
        cout << "Welcome " << k.Name << k.LastName;
    }
};
...