Премини към съдържанието
Maria11

Шаблонен клас - Помощ

Препоръчан отговор


Здравейте, имам следната задача:

1. Да се състави абстрактен шаблонен клас Comparable сравнител за по-малко;

Виртуална предикатна функция compareTo(T obj).

2. Да се състави шаблонен клас CTableColumn - описател на колона на таблица, наследник на два конкретни шаблона на Comparable:

CTableColumn и int.

Частни членове:

string m_strRowName - име на ред

string m_strColumnName - име на колона

int m_contents - съдържание

Конструктори:

Подразбиращ се, Експлицитен, Копиращ

Публични членове:

accessors: getRowNameq getColumnName, getValue

mutator: setValue

преобразувател на елементите в стринг: string toString() ////////

предикатна за празно име на колоната или ред isEmpty() ////////

виртуалните функции compareTo(CTableColumn toObj) compareTo(int Obj) ////////

Много се затруднявам на шаблонен клас. Имам нужда от помощ за него, не знам нищо за него.

#include <iostream>
#include <string>
#include <ostream>
#include <fstream>

using namespace std;

templete <class T> ///////1. 
{
  public:
  virtual void compareTo(T obj)
  {
    bool operator < (const Comparable& A)const
    { return obj < A.obj; }
  }
};

templete <class T> //////2.
class CTableColumn
{
 private:
  string m_strRowName;
  string m_strColumnName;
  int m_contents;
  
  CTableColumn(){}
  
  CTableColumn(string red, sting kolona, int sudurjanie)
  {
    m_strRowName = red;
    m_strColumnName = kolona; 
    m_contents = sudurjanie;
  }
  
  CTableColumn(const CTableColumn& A)
  {
    m_strRowName = A.m_strRowName;
    m_strColumnName = A.m_strColumnName;
    m_contents = A.m_contents;
  }
  
 public:
  string getRowName() const
  {return m_strRowName;}
  
  string m_strColumnName() const
  {rturn m_strColumnName;}
  
  int getValue() const
  {return m_contents;}
  
  void setValue(int s)
  {m_contents = s;}
  
  //...........
  //...........
  //...........
};

Ако може помогнете ми за string toString(), isEmpty() и виртуалните функции compareTo(CTableColumn toObj) compareTo(int Obj).

 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Добавете отговор

Можете да публикувате отговор сега и да се регистрирате по-късно. Ако имате регистрация, влезте в профила си за да публикувате от него.

Гост
Напишете отговор в тази тема...

×   Вмъкнахте текст, който съдържа форматиране.   Премахни форматирането на текста

  Разрешени са само 75 емотикони.

×   Съдържанието от линка беше вградено автоматично.   Премахни съдържанието и покажи само линк

×   Съдържанието, което сте написали преди беше възстановено..   Изтрий всичко

×   You cannot paste images directly. Upload or insert images from URL.


  • Разглеждащи това в момента   0 потребители

    Няма регистрирани потребители разглеждащи тази страница.

  • Горещи теми в момента

  • Подобни теми

    • от Plamy Gerova
      Може ли да помогнете с тази задаба: дадена е огърлица от черни и бели мъниста, така че няма две съседни черни мъниста. При зададени w-бели и b-черни мъниста да се отпечатат всички възможни огърлици.
    • от Десислава Нешева
      Здравейте хора. Имам проблем със следната задача, моля ако някой разбира от с++ и може да ми каже къде греша и защо не ми тръгва програмата. Това е условието а по надолу е и самата програма.
      Зададена е матрица A[MxN] с реални елементи. Размерите на матрицата M и N и елементите й да се въведат от текстов файл със структура M N A11 A12 … A1N ………………. AM1 AM2 … AMN Въведената матрица да се изведе контролно на екрана. Да се състави вектор В с елементи показващи броя на елементите, по-големи от първия във всеки ред, и вектор С с елементи показващи броя на елементите, по-малки от първия във всеки стълб. Формирането на векторите да стане във функция. Извеждането им да стане на екрана. Да се намери редът/стълбът с най-голям брой елементи, изпълняващи съответното условие. Резултатът да се изведе на екрана. 
       
       
      #include <iostream>
      #include <fstream>
      #include <cmath>
      #include <iomanip>
      void matrica(float A[][10],int M,int N);
      int main()
      {
          int i,j,M,N;
          float A[10][10];
          
          do
          {
              std::cout<<"M=";
              std::cin>>M;
          }
          while(M<2||M>10);
          do
          {
              std::cout<<"N=";
              std::cin>>N;
          }
          while(N<2||N>10);

          std::ifstream fin("data.txt",std::ios::in);
          for(i=0;i<M;i++)
              for(j=0;j<N;j++)
              fin>>A[j];

          for(i=0;i<M;i++)
          {std::cout<<std::endl;
              for(j=0;j<N;j++)
              std::cout << setiosflags(std::ios::fixed) << std::setprecision(2) << A[j]<<"\t";
          }
                                  
      file.close();                            
          std::vector<int> B;                        
          std::vector<int> trackB;                
          int Bcount = 0;                            
          int Bbcount = 0;                        
          unsigned int Bbiggest = 0;                
          std::vector<int> C;                        
          std::vector<int> trackC;                
          int Ccount = 0;                            
          int Cccount = 0;                        
          unsigned int Cbiggest = 0;                
          for(int j = 0; j < M; j++){
              for (int k = 1; k < N; k++) {        
                  if (A[j][0] < A[j][k]) {
                      B.push_back(A[j][k]);
                      Bcount++;
                      Bbcount++;
                  }
              }
              trackB.push_back(Bbcount);
              Bbcount = 0;
          }

          std::cout << "\nElementi, po-golemi ot purviq element vuv vsqka redica sa: " << std::endl;        
          for (unsigned int i = 0; i < B.size(); i++) {
              std::cout << B << " ";

          }
          std::cout << "\nBroqt im e: " << Bcount << std::endl;    
          for (int j = 0; j < N; j++) {            
              for (int k = 1; k < M; k++) {
                  if (A[0][j] > A[k][j]) {
                      C.push_back(A[k][j]);
                      Ccount++;
                      Cccount++;
                  }
              }
              trackC.push_back(Cccount);
              Cccount = 0;
          }
          std::cout << "\nElementi, po-malki ot purviq element vuv vsqka kolona sa: " << std::endl;        
          for (unsigned int i = 0; i < C.size(); i++) {
              std::cout << C << " ";
          }
          std::cout << "\nBroqt im e: " << Ccount << std::endl;
          for (unsigned int i = 0; i < trackB.size(); i++) {
              if (trackB > trackB[Bbiggest]) {
                  Bbiggest = i;
              }
          }
          std::cout << "\nRedut s nai-mnogo elementi, po-golemi ot purviqt e: " << Bbiggest + 1;            
          
          for (unsigned int i = 0; i < trackC.size(); i++) {
              if (trackC > trackC[Cbiggest]) {
                  Cbiggest = i;
              }
          }
          std::cout << "\nKolonata s nai-mnogo elementi, po-malki ot purviqt e: " << Cbiggest + 1;
          std::cin.get();
      }

       
    • от Hadjimehmed Shener
      Здравейте, трябва да представя курсова работа тази седмица . Направих си програмата, обаче имам едно условие още , което гласи "използвате запитване за името на играча и съхранявате резултатите в текстов файл" . Моля помогнете , ако е нужно ще ви пратя и целия код
    • от Кристиян Йорданов
      Здравейте,
      Искам да ви попитам как да мога да си направя социална мрежа с php.
    • от Кристиян Йорданов
      Здравейте,
      Искам да ви попитам имам една система която съм направил но в нея има файлове като data.txt. Въпросът ми е как тази data.txt да я изтрия без да влизам в хоста
  • Дарение

×
×
  • Добави ново...

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите Условия за ползване