Я должен сделать проблему c++ для школы с классами и объектами.
Создайте класс "Шаорма".
-member данные: мясо, чеснок, соль, пеппер;
-member: неявные конструкторы, параметры
-constructors, функции для печати на
-screen, функции, которые изменяют тип члена "чеснок", функцию, которая
-return мясо, деструктор;
Я использую Microsoft Visual Studio 2013, и я получаю следующие ошибки:
-Error 2 ошибка LNK1120: 1 нерешенные внешние;
-Error 1 ошибка LNK2019: неразрешенный внешний символ "public: __thiscall shaorma :: shaorma (void)" (? 0shaorma @@QAE @XZ), на который ссылается функция _main;
#include<iostream>
#include<conio.h>
using namespace std;
class shaorma
{
int salt, peper;
char meat[40];
char garlic[3];
public:
shaorma();
shaorma(int, int, char*, char*);
~shaorma();
void print();
void setgarlic(char*);
char* getmeat();
};
shaorma::shaorma(int s, int p, char *C, char *U)
{
salt = s;
peper = p;
strcpy_s(meat, C);
strcpy_s(garlic, U);
}
shaorma::~shaorma()
{
cout << "The destructor war called.";
}
void shaorma::print()
{
cout << "Shaorma has garlic:" << garlic;
cout << "," << salt << "salt";
cout << peper << "peper";
cout << "meat type:" << meat << endl;
}
void shaorma::setgarlic(char *U)
{
strcpy_s(garlic, U);
}
char* shaorma::getmeat()
{
return meat;
}
void main()
{
shaorma S1, S2(5, 4, "yes", "lamb");
S1.print();
S2.print();
S1.setgarlic("No");
S2.getmeat();
cout << "Meat is :" << S2.getmeat();
_getch();
}
Вы объявили конструктор по умолчанию shaorma()
но забыли его определить
class shaorma
{
//...
public:
shaorma();
//...
Этот конструктор используется при объявлении объекта S1
в заявлении основного
shaorma S1, S2(5, 4, "yes", "lamb");
Примите во внимание, что main должен иметь тип возврата int
int main()
Кроме того, строковые литералы в C++ имеют типы постоянных массивов символов. Поскольку вы используете строковые литералы в своей программе, то, например, функция setgarlic
должна быть объявлена как
void setgarlic( const char* );
shaorma S1, S2(5, 4, "yes", "lamb");
только второй получает эти параметры. Первый создается с помощью конструктора по умолчанию. Также у вас есть правильные параметры мяса и чеснока? Почему бы не использоватьstd::string
чтобы вы могли есть мясо с любым именем, и установить чеснок вbool
?