У меня есть 2 класса в одном файле employee
и employeeException
. Если я определяю конструктор для employee
, я не смогу определить конструктор для employeeException
, наоборот. Пытаясь определить конструкторы для обоих classess вызовет следующую ошибку компиляции:Невозможно определить конструктор 2 разных классов в одном файле
не вызов функции соответствия сотруднику
#include <iostream>
#include <string>
using namespace std;
class employee
{
public:
double operator + (employee);
bool operator == (employee);
employee(int);
double getSalary();
private:
double salary;
};
class employeeException
{
public:
employeeException(string);
void printmessage();
private:
employee e;
string message;
};
int main()
{
employee A(400);
employee B(400);
employee C = A+B;
if (A == B)
{
cout<<"Yes";
}
else
{
cout<<"No";
}
cout<<C.getSalary();
}
employee::employee(int salary)
{
this->salary = salary;
}
double employee::operator + (employee e)
{
double total;
total = e.salary + this->salary;
return total;
}
double employee::getSalary()
{
return this->salary;
}
bool employee::operator == (employee e)
{
if (e.salary == this->salary)
{
return true;
}
else
{
return false;
}
}
employeeException::employeeException(string message)
{
this->message = message;
}
void employeeException::printmessage()
{
cout<<endl
<<this->message
<<endl;
}
Вопросы
1) Исходя из вышеизложенного, кажется, что мы не можем определить конструкторы 2 разных классов в том же файле, есть ли способ преодолеть это
2) Может ли кто-нибудь дать мне объяснения, почему мы не можем определить конструкторы 2 разных классов в одном файле
Дополнительной информации
Я использую Quincy 2005 для компиляции коды
Вы можете используйте этот интернет-компилятор: http://www.compileonline.com/compile_cpp0x_online.php
Заключение кажется, я должен добавить сотрудник конструктора по умолчанию() для его работы , спасибо всем за то, что помогли мне так или иначе
Нет таких ограничений. Какая ошибка вы получаете? Одна из проблем, которую я вижу, заключается в том, что employeeException содержит сотрудника, а у сотрудника нет конструктора по умолчанию. Следовательно, при построении исключения employee возникла бы ошибка ... но это не имеет ничего общего с файлом, в котором реализован конструктор. – sbaker
Должен работать. Какова фактическая ошибка, которую вы получаете? – John3136
какая линия вы получаете ошибку? – user1810087