C ++重复了类类型的定义?

时间:2015-12-05 22:57:20

标签: c++ class

下午好!

很抱歉,如果问题看起来很模糊,但这里有一些(不完整的)代码用于某些上下文。具体来说,这是关于“UserInfo inputInfo”定义部分,如实现文件中的UserInfo :: setUserInfo()和UserInfo :: displayProfile()函数所示。

project02.cpp(实施文件)

-O1

project02.h(头文件)

#include <iostream>
#include "project02.h"

using namespace std;

void UserInfo::setUserInfo()
{
    UserInfo inputInfo;
    string fName;
    string lName;
    int bYear;
    string city;
    string occupation;

    cout << "Please enter your first name: ";
    cin >> fName;
    inputInfo.setFirstName(fName);

    cout << "Please enter your last name: ";
    cin >> lName;
    inputInfo.setLastName(lName);

    cout << "You are now registered as: " << inputInfo.getFirstName() << " " << inputInfo.getLastName();
}

void UserInfo::displayProfile()
{
    UserInfo inputInfo;
    cout << "Profile Information:" << endl;
    cout << "Name: " << inputInfo.getFirstName() << " " << inputInfo.getLastName();
}

void UserInfo::setFirstName(string fName)
{
    _firstName = fName;
}

string UserInfo::getFirstName()
{
    return _firstName;
}

void UserInfo::setLastName(string lName)
{
    _lastName = lName;
}

string UserInfo::getLastName()
{
    return _lastName;
}

project02main.cpp(主文件)

#ifndef PROJECT02_H
#define PROJECT02_H

using namespace std;

class UserInfo
{
    public:
        string getFirstName();
        void setFirstName(string first);
        string getLastName();
        void setLastName(string last);
        int getBirthYear();
        void setBirthYear(int year);
        string getCurrentCity();
        void setCurrentCity(string city);
        string getOccupation();
        void setOccupation(string occ);
        void setUserInfo();
        void displayProfile();
    private:
        string _firstName;
        string _lastName;
        int _birthYear;
        string _currentCity;
        string _occupation;

};

#endif // PROJECT02_H

现在的问题是:是否可以选择重复定义对象“UserInfo inputInfo;”每次在实现文件中有不同的功能吗?

1 个答案:

答案 0 :(得分:1)

此时不要在该数据类型的方法中创建相同数据类型的对象 - 只需调用setFirstname()和getFirstname()以使用将修改您当前使用的同一对象的方法。