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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Степень комплексного числа в C++ http://www.cyberforum.ru/cpp-beginners/thread344921.html
Не могу сообразить- как написать кусок программы для возведения комплексного числа в целую степень. Нашел в инете прогу, пробую запускать- пишет разнообразные ошибки- ругается вот на этот кусок: typedef double T_real; typedef std::complex<T_real> T_compl; ////////////////////////////////////////////////////////////////////////////////////// T_compl pow_z_p...
C++ Сортировка точек в порядке обхода Дано n точек. В массиве a. Надо отсортировать точки в порядке обхода по или против часовой стрелки. Нужна помощь. http://www.cyberforum.ru/cpp-beginners/thread344906.html
C++ функция типа bool
Привет! Подскажите пожалуйста как написать функцию типа bool. Есть вектор целых чисел, в котором надо найти заданное число. Если оно есть функция возвращает true, если такова числа в векторе нет - выдаёт false. Подскажите как исправить ошибку? bool gcd (int *v1, int *v2, int v3) { if (find(v1, v2, v3)) { return true; }else{
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 2: b->Canvas->Brush->Color=clGray; break;
C++ Null pointer assignment. Здравствуйте. Такая проблема: Пытаюсь вызвать функция класса Up() s2 = s1.up(), возвращая указатель на строку (по-умолчанию в s2 пустая строка имеет адрес NULL). Вот только почему передается не ссылка, а само значение строки, поскольку компилятор пишет: null pointer assignment. Значит ссылка не поменялась, и он, не выделив память, прострочил прямо с нулевого адреса... И второй вопрос, как... подробнее

Показать сообщение отдельно
skvor
640KB мне хватило на всё.
118 / 49 / 2
Регистрация: 07.06.2009
Сообщений: 442

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

24.08.2011, 14:21. Просмотров 840. Ответов 11
Метки (Все метки)

Задача: создать объект формирующий HTML теги. Теги бывают двух типов - полные <p параметры_тега>Текст абзаца</p> и короткие <input параметры_тега />.
Хочу за счет создания разных подклассов тегов исключить ошибку вызова функции для полного тега с аргументами для короткого (и наоборот).

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
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:
        FullTag(const std::string &s) : baseTag(s) {}
        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:
        ShortTag(const std::string &s) : baseTag(s) {}
        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;
  return 0;
}
Я надеялся, что строки 37 и 38 не будут компилироваться, т.к. функции cTag::Tag не описаны для соответствующих сочетаний типа первого параметра и числа параметров.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru