Описать два базовых класса с защищен переменной типа char (в Первом - фамилия, в другом - им "я). В Первому из них описать функцию записи фамилии в обратном порядке, а в другом - превращение всех букв имени в Большие. Предусмотреть вывод преобразованной информации на экран. використовуючи множества подражания, описать производной класс с функцией задания этих переменных. В главной функции main ввести эти значения с с помощью обращения к функции с производного класса и вивести Преобразование информацию на экран, використовуючи Функции из базовых классов.
Почему она выводит не все символи?
Код
#include "iostream"
#include "conio.h"
#include "algorithm"
#include "string"
#include "Windows.h"
using namespace std;
class Mystring
{
protected: char str1, str3;
public:
void mystring()
{
char str1[20];
char str3[20];
cout << " прізвище : ";
cin.getline(str1,20);
strcpy(str3, strrev(str1));
cout << str3;
}
};
class bas2
{
protected:char str,str2;
public:
void obr()
{
char str[20];
char str2[20];
cout << "Введіть ім’я: ";
cin.getline(str,20);
strcpy(str2, strupr(str));
cout <<"ім’я:"<< str2;
}
};
class pohid : public bas2,public Mystring
{
public:
void vvid(char STRING)
{
bas2::str2 = STRING;
Mystring::str3 = STRING;
}
};
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
pohid cc;
char str3;
char str2;
cout<<"Ввести прізвище"<<endl;
cin>>str3;
cin>>str2;
cc.mystring();
cc.obr();
system("pause");
return 0;
}
Требование задачи не соответствует тому, что вы пытались делать, но не получилось. Требуется примерно такое:
#include <iostream>
using namespace std;
class Mystring {
protected:
char surname[20];
public:
void inverse() { strrev(surname); }
void print_surname() const { cout << surname << endl; }
};
class Name {
protected:
char firstName[20], up[20];
public:
void print_firstName(bool capitals = false) {
if(capitals) {
cout << up << endl;
}
else
cout << firstName <<endl;
}
};
class Pohid : public Mystring, public Name {
public:
Pohid() {
cout << "enter surname \n" ;
cin.getline(surname, 20);
cout << "enter firstname \n";
cin.getline(firstName, 20);
int n = strlen(firstName);
for (int i = 0; i < n; ++i)
up[i] = toupper(firstName[i]);
}
};
int main()
{
Pohid p;
p.print_firstName();
p.print_surname();
// теперь напечатаем фамилию в обратном порядке, а имя с большими буквами
p.inverse();
p.print_firstName(true);
p.print_surname();
return 0;
}
Если вы поймете как и почему, то надеюсь это будет в пользу того, чтоб дальше вы писали осмысленные вещи
#include <iostream>
#include<string>
using namespace std;
class Mystring {
protected:
char surname[20];
public:
void inverse() { strrev(surname); }
void print_surname() const { cout << surname << endl; }
};
class Name {
protected:
char firstName[20];
public:
void verse() { strupr(firstName); }
void print_firstName() const { cout << firstName << endl; }
};
class Pohid : public Mystring, public Name {
public:
Pohid() {
cout << "enter surname \n";
cin.getline(surname, 20);
cout << "enter firstname \n";
cin.getline(firstName, 20);
}
};
int main()
{
Pohid p;
p.print_firstName();
p.print_surname();
// теперь напечатаем фамилию в обратном порядке, а имя с большими буквами
p.inverse();
p.verse();
p.print_firstName();
p.print_surname();
system("pause");
return 0;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Что Скотт Майерс подразумевает под "Интерфейсами шаблонов" в своей книге "Эффективное использование C++55 верных советов улучшить структуру...
Говорят, что удаление ненужных включений ускоряет сборку проектаЯ решил проверить это на простом примере
мне нужно считать данные из файла в массив структур, вот мой код - узнаю длину файла(количество строк) и потом считываю, но получаю на выходе...