• @[email protected]
    link
    fedilink
    215 days ago

    Yea what is wrong with static members? What do they even mean with “[] for arrays”? Why is that bad? Method overloding is bad? why??

    • @[email protected]
      link
      fedilink
      2
      edit-2
      14 days ago

      I’m assuming static members are bad because globals are bad

      “[] for arrays” is because they want to reserve it for generics once <> is retired

      I think the oveloading thing is about the c/cpp thing where you can define the same function multiple times in the same namespace which yeah sucks imo

      • @[email protected]
        link
        fedilink
        114 days ago

        I mean in c/c++ statics arent really globals, you cant acess the from outsside their scope can you? They just retain their value or am i wrong?

        [] for arrays is the thing that has been used forever so why should we not use it annymore?

        Overloading is also pretty usefull, overloading class constructors is great. I am not a 40 year experience developer but learning c/c++ i never thought that was so bad.

        • @[email protected]
          link
          fedilink
          114 days ago

          I have no idea about c/c++ statics, does c even have statics? What kind of a scope could statics even have?

          I’m very much novice myself and I never liked the idea of trusting the compiler with figuring out the correct overload and neither do I like not being able to tell which version of a function is being called at a glance. Named constructors ftw

          • @[email protected]
            link
            fedilink
            314 days ago

            I mean the thing with overloading is that your functions should have some difference in the paraameters they take, if you make 3 functions that have the exact same parameters of course you will not be shure what the compiler does(alötho i dont think that it would compile? But i dont think that i have ever done that)

            If you have a foo(int x float y) and a foo( int x ) function and you call it with just a x as parameter you can be shure the compiler will call your second function. If the compiler for some reasson tried to use the first foo it would throw a error because it wants a int and a float and you just gave it one int.

            I am shure that

            Foo(){ static int x =0;
            X +=1; Printf(“%d”,); }

            Foo(); every time foo is called x increments so print will be 1,2,3,4… for every call of foo

            Printf(“%d”,x); <- wont work because x cant be acessed here, it is out of scope.

          • @[email protected]
            link
            fedilink
            English
            213 days ago

            you can constrain functions with c++20 concepts to ensure the compiler is calling the correct function if you’re that worried