Anonygeeker Ответов: 4

Напишите программу на языке C++, включающую все концепции


Привет,

Я хочу написать программу на c++, включающую в себя:
1. виртуальная функция
2.статическая функция-член
3.оператор присваивания
4.конструктор копирования
5.перегрузка функций

как к этому подойти?

Что я уже пробовал:

Я просто написал, как в принципе все реализовано, но это было неправильно

Rick York

Одно предложение: вам нужно продемонстрировать перегрузку функций и виртуальную функцию, так что это означает, что вам нужен базовый класс. Реализуйте простой базовый класс, а затем производите от него специализированный класс.

4 Ответов

Рейтинг:
28

Anonygeeker

То, что я пробовал, это :
#include <iostream>
использование пространства имен std;

класс базовый{
int a,b;
общественный:
база(){
cout<<"defult constr"<<endl;
}
база(int a1,int b1){
А=А1;
b=b1;
}
виртуальная ~база(){
cout << "base destr"<<endl;
}
недействительным(инт ы){
cout << s << endl;
}
недействительным(двухместный с){
cout << s << endl;
}
недействительными печати(){
соиь<&ЛТ; а &ЛТ;&ЛТ; "" &ЛТ;&ЛТ; б &ЛТ;< епси;
}
оператор void =(const base &o){
а=О. а;
б=о.б;
}
база (основа констит &амп;о){
а=О. а;
б=о.б;
}
виртуальная пустота удовольствие(){
cout<< "базовый класс "<<endl;
}
статическая пустота sfun(){
cout << "статическая функция"<<endl;
}
};
класс derv:публичная база{
общественный:
derv(){
cout<<"default constr"<<endl;
}
-дервь(){
cout << "destr derv"<< endl;
}
пустота удовольствие(){
cout<< "derv class "<<endl;
}
};

тап_п() {
основание o(1,2);
основание o1(3,4);
база :: sfun();
основание *b1;
база б;
дер д;
В1=&ампер;D;
д. удовольствие();
база О2=о;
о'.печать();
О1.печать();
О2.печать();
o1=o;
О1.печать();
база ов;
ов.шоу(10);
ov.show(100.1234);
удалить b1;
возвращает 0;
}


KarstenK

Спасибо, похоже, вы сделали свою домашнюю работу. Совет: Лучшее именование и кодовые алигменты также относятся к написанию хорошего кода. ;-)

Anonygeeker

Верен ли мой ответ?Или конструктор копирования, который я должен реализовать с помощью динамического выделения памяти?

Рейтинг:
2

KarstenK

Для вашего домашнего задания важно понять эти понятия C++. Я рекомендую это сделать выдающийся сайт-учебник по C++ для вашего обучения.

Когда вы поймете эти понятия, вы найдете какое-то решение, написав несколько таких классов:

class MyClass
{
  // 2. static member function
  static void myStaticfunction();
};
//Usage
MyClass::myStaticfunction();


Рейтинг:
2

Patrice T

Цитата:
Я просто написал, как в принципе все реализовано, но это было неправильно

Мы можем помочь вам исправить ваш код, но вы должны показать этот код и объяснить, где вы застряли.

В противном случае, мы не делаем вашу домашнюю работу.
Вы не можете изучить эти понятия, заставляя нас делать домашнее задание.
Совет: перечитайте свои уроки, прочитайте книгу C++, найдите учебник.


Рейтинг:
1

OriginalGriff

Мы не делаем домашнее задание: оно задано не просто так. Она существует для того, чтобы вы думали о том, что вам сказали, и пытались понять это. Он также существует для того, чтобы ваш наставник мог определить области, в которых вы слабы, и сосредоточить больше внимания на корректирующих действиях.

Попробуйте сами, возможно, вы обнаружите, что это не так сложно, как вы думаете!

Если вы столкнетесь с конкретной проблемой, то, пожалуйста, спросите об этом, и мы сделаем все возможное, чтобы помочь. Но мы не собираемся делать все это для вас!