Форум программистов, компьютерный форум, киберфорум
Наши страницы

Перегрузка функций - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Степень комплексного числа в C++ http://www.cyberforum.ru/cpp-beginners/thread344921.html
Не могу сообразить- как написать кусок программы для возведения комплексного числа в целую степень. Нашел в инете прогу, пробую запускать- пишет разнообразные ошибки- ругается вот на этот кусок:...
C++ Сортировка точек в порядке обхода Дано n точек. В массиве a. Надо отсортировать точки в порядке обхода по или против часовой стрелки. Нужна помощь. http://www.cyberforum.ru/cpp-beginners/thread344906.html
C++ функция типа bool
Привет! Подскажите пожалуйста как написать функцию типа bool. Есть вектор целых чисел, в котором надо найти заданное число. Если оно есть функция возвращает true, если такова числа в векторе нет -...
C++ Сохранение(загрузка) свойств элементов формы в файл
Здравствуйте! Необходимо реализовать взможность сохрнения/загрузки свойств элементов ComboBox (itemindex), Label(caption) и Edit(text) в/из одного файла(разрешение не имеет значения). з.ы. в Edit...
C++ в ОЗУ массив a[i][j] http://www.cyberforum.ru/cpp-beginners/thread344862.html
есть такой код for(int i=0;i<40;i++) { for(int j=0;j<40;j++) { switch(a) { case 1: b->Canvas->Brush->Color=clBlack; break; case 0: b->Canvas->Brush->Color=clGreen; break; case...
C++ Null pointer assignment. Здравствуйте. Такая проблема: Пытаюсь вызвать функция класса Up() s2 = s1.up(), возвращая указатель на строку (по-умолчанию в s2 пустая строка имеет адрес NULL). Вот только почему передается не... подробнее

Показать сообщение отдельно
skvor
640KB мне хватило на всё.
118 / 49 / 2
Регистрация: 07.06.2009
Сообщений: 442
24.08.2011, 19:29  [ТС]
Спасибо, explicit помог
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
class cTag
{ private:
    class baseTag : public std::string
    { public:
        baseTag(const std::string &s) : std::string(s) {}
        baseTag(const char        *s) : std::string(s) {}
    };
  public:
    class FullTag  : public baseTag
    { public:
        explicit FullTag(const std::string &s) : baseTag(s) {}
        explicit FullTag(const char        *s) : baseTag(s) {}
    };
    static std::string Tag(const FullTag &T, const std::string &Param, const std::string &Body)
      { return "<"+T+Param+">"+Body+"</"+T+">";}
    static const FullTag a;
    //-----
    class ShortTag : public baseTag
    { public:
        explicit ShortTag(const std::string &s) : baseTag(s) {}
        explicit ShortTag(const char        *s) : baseTag(s) {}
    };
    static std::string Tag(const ShortTag &T, const std::string &Param)
      { return "<"+T+Param+" />"; }
    static const ShortTag input;
};
 
const cTag:: FullTag cTag::a("a");
const cTag::ShortTag cTag::input("input");
 
int main(int argc, char *argv[], char *env[])
{ system("clear");
 
  std::cout<<cTag::Tag(cTag::a    ," b","c")<<std::endl;
  std::cout<<cTag::Tag(cTag::input," b"    )<<std::endl;
  //std::cout<<cTag::Tag(cTag::a    ," b"    )<<std::endl;
  //std::cout<<cTag::Tag(cTag::input," b","c")<<std::endl;
 
  cTag:: FullTag vFullTag ("Full_Tag");
  cTag::ShortTag vShortTag("Short_Tag");
  //vFullTag=vShortTag;
  cTag::FullTag vFullTag2(vShortTag);
 
  return 0;
}
Осталась только 42 строка, но мне кажется, от этого не избавиться без принципиальной переделки класса. Т.е. vShortTag при обращении через ссылку на std::string раскрывает все свои методы и данные, а попытка использования в наследовании вместо public baseTag private/protected baseTag не позволит компилировать функции cTag::Tag.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru