2013-03-13 2 views
0

Ниже приведена выдержка из кода, с которым я в настоящее время работаю (остальное не связано с моей проблемой. У меня возникают проблемы с функцией члена combInfo (информация a1). ошибка, что он не объявлен в области. Все, что я хочу сделать, это объединить информацию и установить новые переменные. Я был в состоянии это успешно, используя структуру и теперь я классы самообучения.Проблема с объявлением функции члена C++ с классом

#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; 
} 

ответ

0

Вы имеют:

a2.:combineInfo(a1); 

Должно быть:

a2.combineInfo(a1); 

В этом случае по ошибке имеется дополнительная ':'.

+0

Извините, опечатка - не решает корень проблемы, хотя. – 2013-03-13 00:10:35

1

Ваш код дает много ошибок компиляции, но странная часть здесь:

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

    cout << "The combined Information is: " << endl; 
    info.printinformation(); 
// ^^^^ 
// You didn't declare info 
+0

Когда я делаю 'a2' информации в 'main', он запрашивает всю информацию, которая входит в нее. Затем, когда я запускаю a2.combineInfo (a1), он снова запрашивает некоторую информацию. Я не уверен, почему и не должен этого делать. Он отлично компилируется на моем конце, возможно, я пропустил некоторые критические части, когда я извлек то, что я считал самым важным. – 2013-03-13 00:13:11

+0

@ user2163231: код, запрашивающий некоторую информацию, находится в конструкторе класса «Информация». Я думал, что вы знаете, что вы там написали –

+0

Я запускаю Информацию a1 и информацию a2, и она запрашивает информацию через конструктор и работает нормально. Затем, когда я запускаю a2.combineInfo (a1), он снова запрашивает некоторую информацию вместо того, чтобы просто комбинировать и устанавливать некоторые переменные равными. Я не знаю, почему. – 2013-03-13 00:16:19

Смежные вопросы