Форум программистов, компьютерный форум CyberForum.ru

Нужно переопределение методов, 2 в производном и 1 в базовом + виртуальный метод. Как сделать? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывести список на экран http://www.cyberforum.ru/cpp-beginners/thread408554.html
В заданном текстовом файле хранится список студентов до 25 и предметы до 10. Вопрос как вывести исходный список студентов и предметов на экран с использованием таблицы. Вот как понял фамилии и имена предметов все это матрица. с этим кодом выводится хреново, в разброс . #include <iostream> #include <fstream> #include <iomanip> using namespace std; struct student
C++ Реализация алгоритмов теории графов на С/С++ может у кого то есть готовая из этого списка или кто может помочь Реализовать алгоритм поиска пути в лабиринте. Волновой алгоритм. Представление графа – матрица смежности. 2. Реализовать алгоритм поиска кратчайшего пути. Поиск в ширину. Представление графа – матрица смежности. 3. Решить задачу нахождения минимального остовного дерева. Алгоритм Краскала. Представление графа – матрица смежности.... http://www.cyberforum.ru/cpp-beginners/thread408549.html
Шаблоны.Нужен совет. C++
Есть задание выполнить обмен значений аргументов переданных по ссылке и как указатели.Я решил делать шаблон.Возникают вопросы: 1)Можно ли эти (см.ниже.) два шаблона соединить в один? 2)Как объявить лучше тип так <typename TYPE> или так <class TYPE>?Или это одно и тоже? Есть код: template <typename TYPE> void change(TYPE *a,TYPE *b){ TYPE t;
C++ Подскажите как сложить сумы членов ряду
Подскажите как сложить сумы членов ряду на с++ под пример ниже. Заранее благодарен.
C++ c++ строки http://www.cyberforum.ru/cpp-beginners/thread408519.html
Как строках, в после каждого слова в предложениии поставить нужный мне символ?
C++ Найти в каждом столбце матрицы индексы максимального элемента разработать алгоритм обработки двумерного массива размера nxm.Числа n и m,a также элементы массива взять из файла.Необходимо выбрать в каждом столбце максимальный элемент.Результаты(все максимумы с индексами)вывести наэкран. подробнее

Показать сообщение отдельно
yershova
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 3
15.12.2011, 22:35     Нужно переопределение методов, 2 в производном и 1 в базовом + виртуальный метод. Как сделать?
Базовый

class Fruit
{
protected:
string Color;
string Size;
string Type;
public:
Fruit(void);
Fruit(string aColor, string aSize, string aType);
~Fruit(void);
string GetColor(void);
string GetSize(void);
string GetType(void);
int SetType(string aType);
int SetSize(string aSize);
int SetColor(string aColor);
void Print();

};


Fruit::Fruit(void)
{
Size="15";
Type="apple";
Color="red";
}

Fruit::Fruit(string aColor, string aSize, string aType)
{
Color=aColor;
Size=aSize;
Type=aType;
}

Fruit::~Fruit(void)
{
}

string Fruit::GetColor()
{
return Color;
}

string Fruit::GetType()
{
return Type;
}

string Fruit::GetSize()
{
return Size;
}

int Fruit::SetSize(string aSize)
{
if (aSize.size()>0)
{
Size=aSize;
return 1;
}
else
{
return 0;
}
}

int Fruit::SetColor(string aColor)
{
if (aColor.size()>0)
{
Color=aColor;
return 1;
}
else
{
return 0;
}
}

int Fruit::SetType(string aType)
{
if (aType.size()>0)
{
Type=aType;
return 1;
}
else
{
return 0;
}
}

void Fruit::Print()
{
cout << "Object of Fruit" << endl
<< "Color:" << Color << endl
<< "Size:" << Size << endl
<< "Type:" << Type << endl;

}


Наследник


class Fruits :
public Fruit
{
private:
int number;
public:
Fruits(void);
Fruits(string aColor, string aSize, string aType, int anumber);
~Fruits(void);
int GetNumber();
void SetNumber(int anumber);
void Print();

};

Fruits::Fruits():Fruit(), number(0)
{
}

Fruits::Fruits(string aColor, string aSize, string aType, int anumber):Fruit(aColor,aSize,aType), number(anumber)
{
}
Fruits::~Fruits()
{
}
int Fruits::GetNumber()
{
return number;
}

void Fruits::SetNumber(int anumber)
{
number=anumber;
}

void Fruits::Print()
{
cout<< "Object of Fruit" << endl
<< "Color:" << Color << endl
<< "Size:" << Size << endl
<< "Type:" << Type << endl
<< "Number:" << number << endl;

}


Мэйн

int main(void)
{
menu obj;
obj.Action();
return 0;
}

Меню

class menu
{
private:
Fruits obj;
vector<Fruits> FruitVector;
void CreateObject();
void ScreenSaver();
int ChooseObject();
void ChangeColor();
void ChangeSize();
void ChangeType();
void ChangeNumber();
void CreateObjectDefault();
void DeleteObjects();
public:
void Action();

};

void menu::CreateObject()
{
string tempColor;
string tempSize;
string tempType;
int tempNumber;
cout << "Enter color: ";
cin >> tempColor;
cout << "Enter size: ";
cin >> tempSize;
cout << "Enter type: ";
cin >> tempType;
cout << "Enter number: ";
cin >> tempNumber;
obj=Fruits(tempColor, tempSize, tempType, tempNumber);

}


void menu:eleteObjects()
{
FruitVector.clear();
cout << "All objects are removed.Press any key to continue.."<< endl;
_getch();

}

void menu::ScreenSaver()
{
cout <<"1.Create object" << endl
<<"2.Edit color" << endl
<<"3.Edit size" << endl
<<"4.Edit type" << endl
<<"5.Edit number" << endl
<<"6.Delete objects" << endl
<<"7.Output screen" <<endl
<<"8.Create object default" <<endl
<<"9.Exit" << endl;
}

void menu::ChangeColor()
{
string tempColor;
cout << "Enter color: ";
cin >> tempColor;
obj.SetColor(tempColor);
}

void menu::ChangeSize()
{
string tempSize;
cout << "Enter size: ";
cin >> tempSize;
obj.SetSize(tempSize);
}

void menu::ChangeType()
{
string tempType;
cout << "Enter type: ";
cin >> tempType;
obj.SetType(tempType);
}

void menu::ChangeNumber()
{
int tempNumber;
cout << "Enter number: ";
cin >> tempNumber;
obj.SetNumber(tempNumber);
}

void menu::CreateObjectDefault()
{

obj=Fruits();
}

int menu::ChooseObject()
{
system("cls");
int i=0;
int buf;
cout << "Choose object" << endl << endl;
for (i=0;i<(int)FruitVector.size();i++)
cout << i+1 << ".Object" << i+1 << endl << endl;
while (1)
{
cout << "Your choose: " << endl << "#-";
cin >> buf;
if(buf<=(int)FruitVector.size())
break;
else
cout << "Wrong choose.Retype" << endl;

}
return buf-1;
}

void menu::Action()
{
int buf;
ScreenSaver();
cout <<""<< endl
<<"#-";
cin >> buf;
while(buf!=9)
{
switch(buf)
{
case 1:
{
system("cls");
CreateObject();
cout << "Press any key.." << endl;
_getch();
system("cls");
ScreenSaver();
break;
}
case 2:
{
system("cls");
ChangeColor();
cout << "Press any key.." << endl;
_getch();
system("cls");
ScreenSaver();
break;
}
case 3:
{
system("cls");
ChangeSize();
cout << "Press any key.." << endl;
_getch();
system("cls");
ScreenSaver();
break;
}

case 4:
{
system("cls");
ChangeType();
cout << "Press any key.." << endl;
_getch();
system("cls");
ScreenSaver();
break;
}

case 5:
{
system("cls");
ChangeNumber();
cout << "Press any key.." << endl;
_getch();
system("cls");
ScreenSaver();
break;
}
case 6:
{
system("cls");
DeleteObjects();
cout << "Press any key.." << endl;
_getch();
system("cls");
ScreenSaver();
break;
}
case 7:
{
system("cls");
obj.Print();
cout << "Press any key.." << endl;
_getch();
system("cls");
ScreenSaver();
break;
}

case 8:
{
system("cls");
menu::CreateObjectDefault();
cout << "Press any key.." << endl;
_getch();
system("cls");
ScreenSaver();
break;
}

default:
{
cout << "Wrong choose.Retype" << endl;
}
}
cout << ""<< endl
<<"#-";
cin >> buf;
}
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru