0

下面是我当前正在使用的代码的摘录(其余的与我的问题无关。我在使用 Information combineInfo(information a1) 成员函数时遇到问题。我收到一个错误,它没有在范围内声明。所有我想做的是结合信息并设置新变量。我能够使用结构成功地做到这一点,现在我是自学班。

#include <iostream>
#include <string>

using namespace std;

struct Date
{
    int month;
    int day;
    int year;
};

class Information
{
public:
    Information(); 
    void printinformation(); 
    Information combineInfo(Information a1);
    //Setters and Getters Here
private:
    string a;  
    double b; 
    double c; 
    Date d;
    Date e;
};

void initializeDate(Date& d);
void printDate(Date& d);

int main()
{
    cout << endl << "Now please input Information #1" << endl;
    Information a1;  // prompts for all the inputs for a1
    cout << endl << "Now please input Information #2" << endl;
    Information a2;  // prompts for all the inputs for a2
    a2.combineInfo(a1);  // again prompts for info??
    cout << "The combined Information is: " << endl;
    info.printinformation();
    return 0;
}

Information::Information()
{
    string a;
    cout << "Please enter a"<<endl;
    getline(cin, a);
    cout <<"Please enter b?"<<endl;
    cin >> b;
    getline(cin, dummy);
    cout <<"Please enter c?"<<endl;
    cin >> c;
    getline(cin, dummy);
    cout << "Please input the info start dates."<< endl;
    initializeDate(start);
    cout << "Please input the info end dates."<< endl;
    initializeDate(finish);
}

Information Information::combineInfo(Information a1)
{
    Information a1;
    Information a2;
    Information info;
    a1.a = a2.a;
   //etc.
    return info;
}
4

2 回答 2

1

您的代码给出了很多编译错误,但最奇怪的部分在这里:

    Information a2;
    a2.:combineInfo(a1);
//    ^^ Remove the :

    cout << "The combined Information is: " << endl;
    info.printinformation();
//  ^^^^
//  You didn't declare info
于 2013-03-13T00:09:39.247 回答
0

你有:

a2.:combineInfo(a1);

它应该是:

a2.combineInfo(a1);

错误地在那里有一个额外的':'。

于 2013-03-13T00:08:19.243 回答