1. C++ / Говнокод #26805

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    #include <iostream>
    #include <string>
    
    
    using namespace std;
    
    
    struct A
    {
        template <typename T>
        void f(const T& n); 
    };
    
    template <typename T>
    void A::f(const T& n)
    {
        cout << "A::f(n = " << n << ")\n"; 
    }
    
    struct B : public A
    {
        template <typename T>
        void f(const T& n); 
    };
    
    template <>
    void B::f<string>(const string& n)
    {
        cout << "B::f<string>(n = " << n << ")\n"; 
    }
    
    int main()
    {
        B b;
        b.f<string>("aaa");
        b.f<int>(3);
    
        return 0;
    }

    Какой undefined reference )))

    Запостил: OlegUP, 13 Июля 2020

    Комментарии (15) RSS

    • Ничего непонятно, переведите на 1с.
      Ответить
      • Могу только на «PHP»:
        <?php
        
        class A
        {
            public function f($n) {
                echo "A::f(n = $n)\n"; 
            }
        }
         
        class B extends A
        {
            public function f($n) {
                if(is_string($n)) {
                    echo "B::f<string>(n = $n)\n"; 
                } else {
                    parent::f($n);
                }
            }
        }
         
        $b = new B();
        $b->f("aaa");
        $b->f(3);
        
        return 0;
        Ответить
        • ничего не понял
          переведи на перл
          Ответить
        • Перевел на язык для умных. вроде, понятнее стало...

          use strict;
          use warnings FATAL => 'all';
          
          package A {
              sub new {
                  return bless {}, shift
              }
              sub f {
                  my ($self, $n) = @_;
                  print "A::f(n = $n)\n";
              }
          }
          
          package B {
              our @ISA = 'A';
              sub f {
                  my ($self, $n) = @_;
                  if ($n =~ m/^\p{Word}+$/) {
                      print "B::f<string>(n = $n)\n";
                  }
                  else {
                      $self->SUPER::f($n);
                  }
              }
          }
          package main;
          my $b = B->new;
          $b->f("aaa");
          $b->f(3);
          # B::f<string>(n = aaa)
          # A::f(n = 3)
          Ответить
          • #!/usr/bin/tcl
            
            ::oo::class create A {
              method f {n} {
                    puts "A::f(n = $n)"
              }
            }
            
            ::oo::class create B {
              superclass A
              method f {n} {
                if {[expr [string is integer $n] == 0]} {
                        puts "B::f<string>(n = $n)";
                } else {
                  next $n
                }
              }
            }
            
            
            set b [B new]
            $b f aaa
            $b f 123
            
            
            # B::f<string>(n = aaa)
            # A::f(n = 123)
            Ответить
        • Что за конструкция "A::f(n = $n)\n"??? Выглядит не оч
          Ответить
        • Отмена пояснительной бригады, вижу ниже "parent::f($n)", похоже принцип тот же
          Ответить
          • Так, гражданин, нарушаем? За ложный вызов вам штраф по статье 19.13 КоАП РФ: 1 000 (одна тысяча) рублей! Пройдёмте в отделение для составления протокола!
            Ответить
            • Какой милиционератор )))
              Через окна, тогда им и постучался с ним и сделал, был командии и демонянам где дают своими милиционератор учит пизды! Говорят, что можностью? Бан надел форму СС, то это нам непростой путём расстоятельно заявляли, с кабинеты вам не очень много читалий! https://govnokod.ru/16714#comment248382
              Ответить
    • лол https://tass.ru/obschestvo/8956393
      Ответить
      • Т. е. если где-нибудь пидорнут модераторы, то на них можно подать в суд?
        Ответить
    • Давайте форсить TCL. Пока анскильные пиштуки ебутся с лямбдами и указателями на функции, боги просто создают нужный код на лету, передавая туда оператор
      #!/usr/bin/tcl
      
      proc create_seq "first last operator step" {
          for "set i $first" {$i < $last} {set i [expr $i $operator $step]} {
              puts $i
          }
      }
      
      create_seq 1 10 + 1
      puts ""
      create_seq 1 10 * 2


      tcl -- вещь! Это любой пятидесятилетний питух знает
      Ответить

    Добавить комментарий